Spark Streaming Actions和transformation

时间:2016-09-20 22:38:20

标签: apache-spark spark-streaming

在下面的代码 statement 5 中没有给出行数,但 statement 4 打印的行为什么?
在火花流中执行了多少动作操作?
statement 6 是否未执行?

1) val conf =new SparkConf().setMaster("local").setAppName("learn")
2) val ssc = new StreamingContext(conf,Seconds(10))    
3) val lines  =ssc.socketTextStream("localhost",1234)
4) lines.print()   
5) lines.count()
6) ssc.start()
7) ssc.awaitTermination()

1 个答案:

答案 0 :(得分:1)

请找到您的问题的答案:

  

为什么 Statement 5 没有给出输出中的行数,但是 statement 4 正在打印行原因?

statement 5 中,您只是在调用DStream。 Count是一个转换,可以在DStream上应用。它通过计算源DStream的每个RDD中的元素数来返回单元素RDD的新DStream。
如果要打印出行数,则应使用 lines.count().print()
Statement 4 正在提供输出,因为打印调用是操作,用于打印结果。

  

在火花流媒体中执行了多少 action operations

在上面的代码中,只执行了一个print()操作,在 statement 4 中应用。通常,可以在同一任务中执行任意操作。

  

statement 6 是否未执行?

Statement 6 执行,启动流/火花上下文,接收器开始从源接收数据。