Spark:没有注册输出操作,因此无需执行

时间:2015-12-09 20:22:58

标签: apache-spark spark-streaming

以下问题类似:Spark Streaming with Twitter - No output streams registered, so nothing to execute但我认为在使用51的{​​{1}}行中我确实会输出一些结果。

基本代码:

wordCounts.print()

或者我在这里误解了什么? 跟进: https://github.com/dataplayground/playground/blob/master/app/actors/DirectStreamingActor.scala

2 个答案:

答案 0 :(得分:5)

ssc.start()
ssc.awaitTermination()

应该是代码中的最后一个。

答案 1 :(得分:1)

  

由于输出操作实际上允许外部系统使用转换后的数据,因此它们会触发所有DStream转换的实际执行(类似于RDD的操作)。

来自http://spark.apache.org/docs/latest/streaming-programming-guide.html#output-operations-on-dstreams

实际上,因为当你start()时你没有做任何输出操作。当您将start()awaitTermination()移动到代码中的最后一个位置时,您执行了输出操作,因此它可以正常工作。