1. 程式人生 > >Spark 中 map 與 flatMap 的比較

Spark 中 map 與 flatMap 的比較

通過一個實驗來看Spark 中 map 與 flatMap 的區別。

 

步驟一:將測試資料放到hdfs上面

hadoopdfs -put data1/test1.txt /tmp/test1.txt

該測試資料有兩行文字:

 

步驟二:在Spark中建立一個RDD來讀取hdfs檔案/tmp/test1.txt

 

步驟三:檢視map函式的返回值

得到map函式返回的RDD: 

檢視map函式的返回值——檔案中的每一行資料返回了一個數組物件

 

步驟四:檢視flatMap函式的返回值

得到flatMap函式返回的RDD:

檢視flatMap函式的返回值——檔案中的所有行資料僅返回了一個數組物件

 

總結:

- Spark 中 map函式會對每一條輸入進行指定的操作,然後為每一條輸入返回一個物件;

- 而flatMap函式則是兩個操作的集合——正是“先對映後扁平化”:

   操作1:同map函式一樣:對每一條輸入進行指定的操作,然後為每一條輸入返回一個物件

   操作2:最後將所有物件合併為一個物件

轉載地址:http://www.bkjia.com/yjs/927704.html