如何在收到数据时使Spark Streaming保存文件?

时间:2018-06-14 09:03:08

标签: apache-spark spark-streaming

我正在开发一个非常简单的火花流应用程序,它从s3位置获取inputTextFiles并进行一些转换并再次将结果输出到某个s3位置。 但问题是

JavaPairDStream<String, String> pairs = lines.mapToPair(
            line -> new Tuple2<String, String>(line, fetcher.fetchAndSaveUrl(process(line) ))
            );
pairs.dstream().saveAsTextFiles(s3Path + "/output", "output");

如果在没有处理的情况下保存文件事件,则在特定的批处理间隔中使用名为_SUCCESS的空文件进行处理。 如何确保仅在读取某些输入时才保存文件?

1 个答案:

答案 0 :(得分:0)

你需要过滤我们的空RDD(即检查rdd.count()或rdd,isEmpty(),无论你会发现什么更合适)。 要实现这一点,您需要以使用foreachRDD()的方式重写DStream上的操作。