他們的相同點是接收的入參都是乙個function。
不同點這個入參function的返回不同。map返回乙個物件,flatmap返回乙個stream。
這就使得map是一對一的處理,得到的stream中元素的數量和原始數量一致,而flatmap返回stream這就使得flatmap可以具備一對多的處理能力。最後這個function的stream匯聚到乙個stream中,數量可以多於原始元素的數量。
public輸出:static
void
main(string args)
a1test**:a2test
a3testa1a
2a3
把陣列流
中的每乙個值,使用所提供的函式執行一遍,一一對應。得到元素個數相同的陣列流
。
flat是扁平的意思。它把陣列流
中的每乙個值,使用所提供的函式執行一遍,一一對應。得到元素相同的陣列流
。只不過,裡面的元素也是乙個子陣列流
。把這些子陣列合併成乙個陣列以後,元素個數大概率會和原陣列流
的個數不同。
map與flatMap的區別
spark的轉換運算元中map和flatmap都十分常見,要了解清楚它們的區別,我們必須弄懂每執行一次的資料結構是什麼。這裡我們先準備一組資料 hello spark hadoop jeff ruoze spark hi spark hello 啟動spark之後,讀取這個檔案 將一行行按照製表符進...
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...