我正在使用Spark流处理输入文件序列。
Spark streaming为每个输入文件创建一个任务,并且相应的没有分区和输出部分文件。
JavaPairInputDStream<Text, CustomDataType> myRDD =
jssc.fileStream(path, Text.class, CustomDataType.class, SequenceFileInputFormat.class,
new Function<Path, Boolean>() {
@Override
public Boolean call(Path v1) throws Exception {
return Boolean.TRUE;
}
}, false);
例如,如果间隔中有100个输入文件。
然后输出文件中将有100个零件文件。
每个零件文件代表什么? (从任务输出)
如何减少输出文件的数量(2或4 ......)?
这取决于没有分区器吗?
答案 0 :(得分:0)
每个文件代表一个RDD分区。如果您想减少分区数量,可以调用重新分区或与您希望拥有的分区数量合并。
https://spark.apache.org/docs/1.3.1/programming-guide.html#transformations