Spark流为每个输入文件创建一个任务

时间:2015-06-04 13:48:11

标签: apache-spark spark-streaming

我正在使用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 ......)?

这取决于没有分区器吗?

1 个答案:

答案 0 :(得分:0)

每个文件代表一个RDD分区。如果您想减少分区数量,可以调用重新分区或与您希望拥有的分区数量合并。

https://spark.apache.org/docs/1.3.1/programming-guide.html#transformations