1. 程式人生 > >RDD之flatMap與Map對比

RDD之flatMap與Map對比

定義

首先我們列出flatMap與Map的定義,可參考RDD API

  • def map[U](f: (T) ⇒ U)(implicit arg0: ClassTag[U]): RDD[U]
    Return a new RDD by applying a function to all elements of this RDD.

  • def flatMap[U](f: (T) ⇒ TraversableOnce[U])(implicit arg0: ClassTag[U]): RDD[U]
    Return a new RDD by first applying a function to all elements of this RDD, and then flattening the results.

api已經講解較為清楚,map是將每個元素對應執行f函式,而flatMap對應的是將每個元素執行f函式後將其扁平化

示例

我們採用將每個元素按照空格的方法將每個元素進行分割,分別執行map與flatMap方法。
map方法如下圖所示:
map函式
flatMap方法如下圖所示:
flatMap函式