1. ホーム
  2. performance

[解決済み] Apache Spark: map vs mapPartitions?

2022-04-26 09:11:55

質問

とはどう違うのですか? RDDの mapmapPartitions というメソッドがあるのですか?そして flatMap のように動作します。 map または mapPartitions ? ありがとうございます。

(編集) つまり、次の2つの違いは何ですか(意味的にも実行面でも)?

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

そして

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

解決方法は?

<ブロッククオート

RDDのmapメソッドとmapPartitionsメソッドの違いは何ですか?

メソッドは 地図 は、それぞれの 要素 を関数の適用により結果RDDの1つの要素に変換します. マップパーティション は、それぞれの パーティション を、結果の複数の要素に変換する。

また、flatMapはmapのように動作するのでしょうか、それともmapPartitionsのように動作するのでしょうか?

どちらでもない。 フラットマップ は単一の要素で動作します ( map のように)、結果の複数の要素を生成します。 mapPartitions ).