Apache Spark: map vs mapPartitions?

Was ist der Unterschied zwischen einemRDD's map undmapPartitions Methode? Und tutflatMap Benehmen wiemap oder wiemapPartitions? Vielen Dank.

(edit) d. h. was ist der Unterschied (entweder semantisch oder in Bezug auf die Ausführung) zwischen

  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)
  }

Und:

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage