http://www.cnblogs.com/yurunmiao/p/5195754.html
原始读法:
lines = sc.textFile("hdfs:///dir/")
这样一个block会形成一个partition,对应一个task。
优化读法:
lines = sc.newAPIHadoopFile("hdfs:///dir/","org.apache.hadoop.mapreduce.lib.input.CombineTextInputFormat","org.apache.hadoop.io.LongWritable","org.apache.hadoop.io.Text")
.map(s => s._1)
org.apache.hadoop.mapreduce.lib.input.CombineTextInputFormat
可以将多个小文件合并生成一个Split,而一个Split会被一个Task处理,从而减少Task的数目。