Spark Stream中的foreachRDD不会写入文件

时间:2017-03-01 15:32:57

标签: scala apache-spark spark-streaming

这是我的Spark Streaming工作:

object StreamingTest {
    def main(args: Array[String]) = {
        val sparkConf = new SparkConf().setAppName("StreamingTest")
        val ssc = new StreamingContext(sparkConf, Seconds(10))
        ssc.checkpoint("checkpoint")
        val lines = KafkaUtils.createStream(
                        ssc,
                        "localhost:2181/kafka",
                        "streaming-group",
                        Map("streaming-topic" -> 1),
                        StorageLevel.MEMORY_AND_DISK
        ).map(_.2)
        lines.flatMap(_.split(" ")).map(token => s"${token} => ${token.hashCode}")
            .foreachRDD(rdd => {
                rdd.saveAsTextFile(s"/results/raw-${System.currentTimeInMillis()}.txt")
            })
        lines.flatMap(_.split(" ")).map(token => s"${token} => ${token.hashCode}")
            .saveAsTextFiles("/results/raw", "test")
        ssc.start
        ssc.awaitTermination
    }
}

上次保存操作有效。它将文件写入/results/raw。 foreach循环中的那个没有。有人可以解释原因吗?

0 个答案:

没有答案