Spark之中map與flatMap的區別

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章