code: def newAPIHadoopFile(self, path, inputFormatClass, keyClass, valueClass, keyConverter=None,
                           valueConverter=None, conf=None, batchSize=0):
          
          jconf = self._dictToJavaMap(conf)
          jrdd = self._jvm.PythonRDD.newAPIHadoopFile(self._jsc, path, inputFormatClass, keyClass,
                                                      valueClass, keyConverter, valueConverter,
                                                      jconf, batchSize)
          return RDD(jrdd, self)
docs: Read a 'new API' Hadoop InputFormat with arbitrary key and value class from HDFS,
          a local file system (available on all nodes), or any Hadoop-supported file system URI.
          The mechanism is the same as for sc.sequenceFile.
  
          A Hadoop configuration can be passed in as a Python dict. This will be converted into a
          Configuration in Java
  
          :param path: path to Hadoop file
          :param inputFormatClass: fully qualified classname of Hadoop InputFormat
                 (e.g. "org.apache.hadoop.mapreduce.lib.input.TextInputFormat")
          :param keyClass: fully qualified classname of key Writable class
                 (e.g. "org.apache.hadoop.io.Text")
          :param valueClass: fully qualified classname of value Writable class
                 (e.g. "org.apache.hadoop.io.LongWritable")
          :param keyConverter: (None by default)
          :param valueConverter: (None by default)
          :param conf: Hadoop configuration, passed in as a dict
                 (None by default)
          :param batchSize: The number of Python objects represented as a single
                 Java object. (default 0, choose batchSize automatically)