map與flatmap的區別

2021-09-25 19:02:02 字數 858 閱讀 3115

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 func_flat_map():

data = ["hello world", "hello fly"]

data_rdd = sc.parallelize(data)

flat_rdd = data_rdd.flatmap(lambda s: s.split(" "))

print("flatmap print:{}".format(flat_rdd.collect()))

func_map()

func_flat_map()

sc.stop()

執行結果:

map print:[['hello', 'world'], ['hello', 'fly']]                                

flatmap print:['hello', 'world', 'hello', 'fly']

可以看出,map對 "hello world", "hello fly"這兩個物件分別對映為['hello', 'world'], ['hello', 'fly'],而flatmap在map的基礎上做了乙個合併操作,將這兩個物件合併為乙個['hello', 'world', 'hello', 'fly'],這就造就了flatmap在詞頻統計方面的優勢。

map與flatMap的區別

spark的轉換運算元中map和flatmap都十分常見,要了解清楚它們的區別,我們必須弄懂每執行一次的資料結構是什麼。這裡我們先準備一組資料 hello spark hadoop jeff ruoze spark hi spark hello 啟動spark之後,讀取這個檔案 將一行行按照製表符進...

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 步...