foreachPartitionのforeachをスパーク

1.foreach

    ヴァルリスト= 新しいArrayBuffer()
    myRdd.foreach(レコード => { 
      リスト + = レコード
    })

2.foreachPartition

    ヴァルリスト= 新しいArrayBuffer 
    rdd.foreachPartition(それ => { 
      It.foreach(R => { 
        リスト + = R 
      })
    })

説明:

foreachPartitionモデルの効率を向上させることができ、オペレータの操作に属します。たとえば、foreachのを使用した場合、すべてのデータがRDDモンゴを書かされ、データはデータ書き込みの一部となり、各関数呼び出しは、データベース接続を作成することがあります、頻繁にデータベース接続を作成し、破壊するためにバインドされて、パフォーマンスそれは非常に低く、しかしオペレータforeachPartitions使い捨て処理と、データ・パーティションは、各パーティションに対して、限り、接続がデータベースを作成し、一括挿入操作を実行するように、性能はこの時点で比較的高いです。

説明の公式ウェブサイトを参照してください。

https://spark.apache.org/docs/latest/streaming-programming-guide.html

 

おすすめ

転載: www.cnblogs.com/shaozhiqi/p/11599748.html