違い:
1、マップはrddの各要素を操作します
2、mapPartitionsはrddの各パーティションのイテレータで動作します
mapPartitionsの利点:
1.通常のマップの場合、たとえば、パーティションにデータが10,000ある場合、関数は10,000回実行する必要があります。mapPartionsを使用すると、タスクは関数を1回だけ実行し、関数はすべてのデータを1回受け取り、1回だけ実行し、パフォーマンスは高くなります。
2.マップに頻繁に追加のオブジェクトを作成する必要がある場合(jdbcを介してrddデータをデータベースに書き込むなど、マップは各データのリンクを作成する必要があり、mapPartionsはパーティションのリンクを作成するだけです)
短所:
mapPartions OOMのメモリオーバーフローが発生する可能性がありますが、マップは発生しません。パーティションが非常に大きいためです。