Spark之中map與flatMap的區別
一直不太明白spark之中map與flatMap之間的區別。map的作用很容易理解就是對rdd之中的元素進行逐一進行函數操作映射爲另外一個rdd。flatMap的操作是將函數應用於rdd之中的每一個元素,將返回的迭代器的所有內容構成新的rdd。通常用來切分單詞。
區別1:
flatMap返回的是迭代器中的元素。
上面的例子說明對於傳遞給flatMap的函數返回的類型是一個可迭代的類型(例如list)。
現在比較一下map和flatMap接收返回值爲可迭代類型的函數的區別:
上例說明對於返回可迭代類型的函數map與flatMap的區別在於:
map函數會對每一條輸入進行指定的操作,然後爲每一條輸入返回一個對象;而flatMap函數則是兩個操作的集合——正是“先映射後扁平化”:
操作1:同map函數一樣:對每一條輸入進行指定的操作,然後爲每一條輸入返回一個對象
操作2:最後將所有對象合併爲一個對象
--------------------- 本文來自 一夜殘雪 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/SparkOrHadoop/article/details/78226756?utm_source=copy