ブロードキャスト変数を使用した分散キャッシング:Apache Spark



このブログ投稿では、ブロードキャスト変数を使用した分散キャッシュについて説明し、Sparkプログラミングで大きな値を効率的に分散する方法を紹介します。

Informaticaでの変換のタイプ

PrithvirajBoseによる寄稿





ブロードキャスト変数は、大きなデータセットをエグゼキュータにキャッシュする必要がある場合に役立ちます。このブログでは、開始方法について説明しています。

ブロードキャスト変数とは何ですか?



Apache Sparkのブロードキャスト変数は、読み取り専用であることが意図されているエグゼキューター間で変数を共有するためのメカニズムです。ブロードキャスト変数がないと、これらの変数は変換とアクションごとに各エグゼキュータに送信され、ネットワークのオーバーヘッドが発生する可能性があります。ただし、ブロードキャスト変数を使用すると、それらはすべてのエグゼキュータに一度出荷され、将来の参照用にキャッシュされます。

ブロードキャスト変数のユースケース

変換を実行しているときに、郵便番号/ PINコードの大きなテーブルを検索する必要があると想像してください。ここでは、大きなルックアップテーブルを毎回エグゼキュータに送信することも、データベースに毎回クエリを実行することもできません。解決策は、このルックアップテーブルをブロードキャスト変数に変換することです。Sparkは、将来の参照のためにすべてのエグゼキュータにキャッシュします。

上記の概念を理解するために簡単な例を見てみましょう。国とその首都の名前が記載されたCSVファイルがあります。 CSVファイルが見つかります ここに



CSV-file-distributed-caching

オラクルストアドプロシージャでの例外処理

国の人口統計データを処理していて、その国の首都を取得する必要があると仮定します。この場合、CSVファイルのデータをブロードキャスト変数に変換できます。

最初にCSVファイルをマップにロードします。ファイルが見つかった場合、メソッドは いくつかの国) それ以外の場合は戻ります 無し

CSVファイルが正常に読み込まれた後、マップをブロードキャスト変数に変換し、プログラムで使用します。

上記のコードスニペットでは、CSVファイルを地図に読み込みます 次に、そのマップをブロードキャスト変数に変換します countrysCache 。続いて、のキーからRDDを作成します。 。の中に searchCountryDetails このメソッドは、ユーザー定義の文字で始まるすべての国を検索し、メソッドは国のRDDとその首都を返します。ブロードキャスト変数 countrieCache 首都を検索するために使用されます。
このようにして、検索が必要になるたびにCSVデータ全体を送信する必要はありません。

のコード searchCountryDetails 以下に示します、

ソースコード全体を見つけることができます ここに

質問がありますか?コメントセクションでそれらに言及してください。折り返しご連絡いたします。

関連記事:

Sparkアキュムレータの説明

Javaの例の可変クラス

ApacheSparkのcombineByKeyの説明