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方法如下图所示: 
RDD之flatMap与Map对比_第1张图片
flatMap方法如下图所示: 
RDD之flatMap与Map对比_第2张图片

你可能感兴趣的:(spark)