2017-07-05 9 views
1

に大きなテーブルで、比較的小さなテーブルに参加し、私は現在、別のテーブルの上にその存在に基づいて、テーブルを更新するに取り組んでいます:がスパーク2.1

例:

データセットA(行の300K、比較的小さな): DepartmentIdの、社員、給与、エラー(比較的大きな、数百万行)

データセットB:DepartmentIdの、社員給与

ロジックは次のとおりです。 1. Aさん(DepartmentIdの、社員)ペアがBに存在する場合、それ以外の場合はBの給与 2とAの給与を更新し、私が今持っているソリューションがやっているAのエラーフィールドに

をメッセージを書きますこのタイプの問題には他にも優れた方法がありますか?

ありがとうございます!パフォーマンスを向上させるため

答えて

1

、あなたは放送ハッシュを使用することができます

@Ram Ghadiyaramで言及hereとして参加する放送データフレームは、参加にパフォーマンスが向上し、すべてのパーティションに配布されます。

DataFrame join optimization - Broadcast Hash Join

は、この情報がお役に立てば幸い!

+0

smallTable.join(bigTable)thoのブロードキャストハッシュジョインをしますか? – vincwng

+1

はい、broadcasr(smallTable).join(bigTable)でも同様です –