老人”SparkContext.hadoopFile
需要一个minPartitions
参数,这是分区数量的提示:
def hadoopFile[K, V](
path: String,
inputFormatClass: Class[_ <: InputFormat[K, V]],
keyClass: Class[K],
valueClass: Class[V],
minPartitions: Int = defaultMinPartitions
): RDD[(K, V)]
但并没有这样的说法SparkContext.newAPIHadoopFile
:
def newAPIHadoopFile[K, V, F <: NewInputFormat[K, V]](
path: String,
fClass: Class[F],
kClass: Class[K],
vClass: Class[V],
conf: Configuration = hadoopConfiguration): RDD[(K, V)]
In fact mapred.InputFormat.getSplits
需要一个提示参数,但是mapreduce.InputFormat.getSplits
需要一个JobContext
。通过新的 API 影响 split 数量的方法是什么?
我尝试过设置mapreduce.input.fileinputformat.split.maxsize
and fs.s3n.block.size
on the Configuration
对象,但没有任何效果。我正在尝试从以下位置加载 4.5 GB 文件s3n
,并且它被加载到单个任务中。
https://issues.apache.org/jira/browse/HADOOP-5861 https://issues.apache.org/jira/browse/HADOOP-5861是相关的,但它表明我应该已经看到多个分割,因为默认块大小是 64 MB。