Apache Spark: carte vs mapPartitions?

Quelle est la différence entre un CA l' map et mapPartitions méthode? Et ne flatMap se comportent comme des map ou comme mapPartitions? Merci.

(edit)
autrement dit, quelle est la différence (soit sémantiquement ou dans les conditions d'exécution) entre

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

Et:

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