Spark 流为每个输入文件创建一个任务
Spark streaming creates one task per input file
我正在使用 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个part文件
每个部分文件代表什么?
(任务输出)
如何减少输出文件的数量(2 或 4 ...)?
这是否取决于分区程序的数量?
每个文件代表一个RDD分区。如果您想减少分区的数量,您可以调用 repartition 或 coalesce 与您希望拥有的分区数量。
https://spark.apache.org/docs/1.3.1/programming-guide.html#transformations
我正在使用 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个part文件
每个部分文件代表什么? (任务输出)
如何减少输出文件的数量(2 或 4 ...)?
这是否取决于分区程序的数量?
每个文件代表一个RDD分区。如果您想减少分区的数量,您可以调用 repartition 或 coalesce 与您希望拥有的分区数量。
https://spark.apache.org/docs/1.3.1/programming-guide.html#transformations