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