class_docstr: This class embodies functionality to resolve HDFS namenodes: per default or a nameservice.
docstr: Resolves the default namenode using the given, or environment-derived, hadoop configuration,
  by parsing the configuration for ``fs.defaultFS``.
  
  :return: a tuple of structure ``(nameservice, list of namenodes)``
code: def resolve_default_hdfs_service(self):
      """
      Resolves the default namenode using the given, or environment-derived, hadoop configuration,
      by parsing the configuration for ``fs.defaultFS``.
  
      :return: a tuple of structure ``(nameservice, list of namenodes)``
      """
      default_fs = self._hadoop_configuration.get("fs.defaultFS")
      if default_fs:
          nameservice = urlparse(default_fs).netloc
          list_of_namenodes = self.resolve_hdfs_name_service(
              nameservice
          )
          if list_of_namenodes is None:
              raise IOError(
                  self._build_error_string(
                      "Unable to get namenodes for "
                      'default service "{}" from'.format(default_fs)
                  )
              )
          return [nameservice, list_of_namenodes]
      else:
          raise RuntimeError(
              self._build_error_string(
                  'Failed to get property "fs.defaultFS" from'
              )
          )
  
imports: import functools
  import inspect
  import logging
  import os
  from distutils.version import LooseVersion
  from xml.etree import ElementTree
  import pyarrow
  import six
  from pyarrow.hdfs import HadoopFileSystem
  from pyarrow.lib import ArrowIOError
  from six.moves.urllib.parse import urlparse
label_desc: Use image node_id 5 for calling the HdfsNamenodeResolver obj's underlying member method code with example usage: obj.resolve_default_hdfs_service() and returns: list