國營聯招 統計資訊統計學、巨量資料概論105 年第 45 題單選題
Spark 的 Word Count程式片段範例如下所示,下列敘述何者有誤?
text_file = sc.textFile("hdfs://...")
counts = text_file.flatMap(lambda line: line.split(" ")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")
Acounts 從頭到尾就是單一個 RDD正確答案
BflatMap() 是依照分隔符號 (" ") 將文字檔分成一個一個的字
Cmap() 將每個字計算一次
DreduceByKey() 將相同字的值相加
A正確答案
Spark Word Count 中,counts 並非單一 RDD,而是由多個 RDD 轉換(transformation)鏈結而成的 DAG 結果。
為什麼答案是 A
錯誤敘述。counts 是由 text_file 經 flatMap、map、reduceByKey 三次 transformation 所產生的一系列不同 RDD(Resilient Distributed Dataset)所鏈結的結果,每次 transformation 都會產生一個新的 RDD,並非從頭到尾都是同一個單一 RDD。
考點:RDD transformation 鏈考點:flatMap 展平操作考點:map 鍵值對映射考點:reduceByKey 聚合操作