2016-09-20 78 views
0

在下面的代碼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

請尋找答案的問題:

爲什麼Statement 5沒有給輸出的行數,但statement 4正在打印的線條爲什麼呢?

statement 5你只是呼籲DSTREAM計數。計數是變換,它被應用於DStream。它通過計算源DStream的每個RDD中元素的數量來返回一個新的單元素RDD的DStream。
如果你想打印出的行數,那麼你應該使用lines.count().print()
Statement 4給出輸出,因爲打印呼叫是動作,它打印結果。

有多少action operations在火花流中執行?

在你的上面的代碼只有一個動作被執行其打印應用於statement 4()。通常,可以在相同的任務中執行任意的動作。

statement 6是不是執行?

Statement 6得到執行時,開始流傳輸/火花上下文和接收器開始接收來自源的數據。