map與flatMap的區別

2021-09-21 01:27:12 字數 817 閱讀 8592

spark的轉換運算元中map和flatmap都十分常見,要了解清楚它們的區別,我們必須弄懂每執行一次的資料結構是什麼。

這裡我們先準備一組資料

hello    spark    hadoop

jeff ruoze spark

hi spark hello

啟動spark之後,讀取這個檔案

將一行行按照製表符進行分割

對分割好的rdd進行map操作(注意:此時的rdd資料型別以及轉換成array【string】字串陣列)

進行了map操作後的rdd資料型別已經變換成(array【string】,int)的tuple型別了

對同樣是剛剛textfile的rdd:string,進行flatmap的製表符切割

此時的陣列中純粹封裝的就是陣列了,並沒有像map操作一樣陣列中裝著陣列

再對這個flatmap(rdd)進行map的封裝

總結可得:flatmap是針對原有的基礎之上,將map又繼續壓扁了

map與flatmap的區別

def func map data hello world hello fly data rdd sc.parallelize data map rdd data rdd.map lambda s s.split print map print format map rdd.collect def ...

map與flatMap的區別

flatmap val linearray array hello you hello me hello world val lines sc.parallelize linearray,1 val words lines.flatmap line words.foreach結果 hello you...

Spark 中 map 與 flatMap 的區別

通過乙個實驗來看spark 中 map 與 flatmap 的區別。步驟一 將測試資料放到hdfs上面 hadoopdfs put data1 test1.txt tmp test1.txt 該測試資料有兩行文字 步驟二 在spark中建立乙個rdd來讀取hdfs檔案 tmp test1.txt 步...