
RDD 操作 |
27
轉換(Transformations)操作
轉換操作是對 RDD 進行某種已定義的操作,並回傳一個新的 RDD 結果。如 29 頁討論
的「慵懶評估」,一個被轉換的 RDD 只有在某個 action 使用到它時,才確定執行相關轉
換操作。許多轉換操作是
元素感知的
(
element-wise
),也就是說,一次處理一個元素;
但是並非全部的轉換操作皆是如此。
舉例來說,假設有一個內含數筆訊息日誌檔案
log.txt
。若想要從中篩選出錯誤訊息
(error message),我們可以使用先前看過的
filter()
轉換操作。範例 3-11 到 3-13 示範
了在三種不同的語言中使用
filter()
的方式
範例
3-11 Python
的
filter()
轉換操作
inputRDD = sc.textFile("log.txt")
errorsRDD = inputRDD.filter(lambda x: "error" in x)
範例
3-12 Scala
的
filter()
轉換操作
val inputRDD = sc.textFile("log.txt")
val errorsRDD = inputRDD.filter(line => line.contains("error"))
範例
3-13 Java
的
filter()
轉換操作
JavaRDD<String> inputRDD = sc.textFile("log.txt");
JavaRDD<String> errorsRDD = inputRDD.filter( ...