以下问题类似: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
答案 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()
移动到代码中的最后一个位置时,您执行了输出操作,因此它可以正常工作。