Spark之中map與flatMap的區別

2021-08-28 19:48:24 字數 610 閱讀 3532

一直不太明白spark之中map與flatmap之間的區別。map的作用很容易理解就是對rdd之中的元素進行逐一進行函式操作對映為另外乙個rdd。flatmap的操作是將函式應用於rdd之中的每乙個元素,將返回的迭代器的所有內容構成新的rdd。通常用來切分單詞。

區別1: 

flatmap返回的是迭代器中的元素。

上面的例子說明對於傳遞給flatmap的函式返回的型別是乙個可迭代的型別(例如list)。

現在比較一下map和flatmap接收返回值為可迭代型別的函式的區別:

上例說明對於返回可迭代型別的函式map與flatmap的區別在於:

map函式會對每一條輸入進行指定的操作,然後為每一條輸入返回乙個物件;而flatmap函式則是兩個操作的集合——正是「先對映後扁平化」:

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

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

Spark之中map與flatMap的區別

一直不太明白spark之中map與flatmap之間的區別。map的作用很容易理解就是對rdd之中的元素進行逐一進行函式操作對映為另外乙個rdd。flatmap的操作是將函式應用於rdd之中的每乙個元素,將返回的迭代器的所有內容構成新的rdd。通常用來切分單詞。區別1 flatmap返回的是迭代器中...

Spark之中map與flatMap的區別

一直不太明白spark之中map與flatmap之間的區別。map的作用很容易理解就是對rdd之中的元素進行逐一進行函式操作對映為另外乙個rdd。flatmap的操作是將函式應用於rdd之中的每乙個元素,將返回的迭代器的所有內容構成新的rdd。通常用來切分單詞。區別1 flatmap返回的是迭代器中...

Spark之中map與flatMap的區別

map 是將函式用於rdd中的每個元素,將返回值構成新的rdd。flatmap 是將函式應用於rdd中的每個元素,將返回的迭代器的所有內容構成新的rdd,這樣就得到了乙個由各列表中的元素組成的rdd,而不是乙個列表組成的rdd。有些拗口,看看例子就明白了。輸入 rdd.map x x collect...