Apache Spark: mapa a mapaPartitions?

Jaka jest różnica międzyRDD map imapPartitions metoda? I robiflatMap zachowywać się jakmap lub jakmapPartitions? Dzięki.

(edytuj) tj. jaka jest różnica (semantycznie lub pod względem wykonania) między

  def map[A, B](rdd: RDD[A], fn: (A => B))
               (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = {
    rdd.mapPartitions({ iter: Iterator[A] => for (i <- iter) yield fn(i) },
      preservesPartitioning = true)
  }

I:

  def map[A, B](rdd: RDD[A], fn: (A => B))
               (implicit a: Manifest[A], b: Manifest[B]): RDD[B] = {
    rdd.map(fn)
  }

questionAnswers(3)

yourAnswerToTheQuestion