id、name、比較的小さなデータフレーム(〜20kエントリ)の2つのカラムを含む比較的大きなデータフレーム(〜3.2テラバイト)それは、単一の列が含まれています。私は何をしようとしているID小さなデータフレームに存在する大きなデータフレームのエントリを効率的にフィルタリングする
は、私は、効率的な解決策になるかと思った彼らは、小さなデータフレーム
に表示された場合、大きなデータフレームからのIDと名前の両方を取ることですこれを稼働させるにはなぜですか?私が念頭に置いていたいくつかのオプション:
- 放送は2つのデータフレーム
- 放送に小さなデータフレームを結合し、文字列の配列としてそれを収集し、その後、大きなデータフレームにフィルタを適用し、文字列 の配列とISINを使用します
私がここで言及しなかった他のオプションはありますか?
具体的な解決策は、そのすべて私の知る限り、事前
PLSはhttp://stackoverflow.com/questions/40320441/difference-between-sc-broadcast-and-broadcast-function-in-を参照してください私のコメントにはリンクを私の答えを参照してくださいspark-sql –
@RamPrasadGので、私は正しく理解することができます:オプション1を選択すると、小さなテーブルをブロードキャストし、大きなデータフレームと小さなものの間でハッシュジョインを実行します。オプション2では、ループ結合を使用してそれを実行しますか? thatsが正しい場合、オプション1のように聞こえますが、検索が高速になるので、正しいですか? – Gideon