SparkのmapオペレーターとmapPartitionsオペレーターの違い

違い:

  1、マップはrddの各要素を操作します

  2、mapPartitionsはrddの各パーティションのイテレータで動作します


mapPartitionsの利点:

  1.通常のマップの場合、たとえば、パーティションにデータが10,000ある場合、関数は10,000回実行する必要があります。mapPartionsを使用すると、タスクは関数を1回だけ実行し、関数はすべてのデータを1回受け取り、1回だけ実行し、パフォーマンスは高くなります。

  2.マップに頻繁に追加のオブジェクトを作成する必要がある場合(jdbcを介してrddデータをデータベースに書き込むなど、マップは各データのリンクを作成する必要があり、mapPartionsはパーティションのリンクを作成するだけです)

短所:

  mapPartions OOMのメモリオーバーフローが発生する可能性がありますが、マップは発生しません。パーティションが非常に大きいためです。

おすすめ

転載: www.cnblogs.com/dretrtg/p/12687246.html