0

Spark SQL 1.5.0を使用しています。データフレームが2つあり、1つ小さい(3 MB未満)ものが2つ目です。ブロードキャストを使用したいスパークSQL関数(強力な放送ヒント)が、私は以下のエラーになっています。 PF1のデータフレームは3 MBのデータJavaアサーションが失敗しました。ブロードキャストヒントの計画はありません

df1.join(broadcast(pf1)).show() 

java.lang.AssertionError: assertion failed: No plan for BroadcastHint. Unable to find it out solution(because of this my simple join taking morethan 40 min time without broadcast),

のボリュームすべてのヘルプは、あなたは現在の参加条件を指定しないことによって参加クロスをやっている

答えて

0

を高く評価しています。 col("pf1_id") === col("id")

などの結合条件を追加すると、結合がはるかに高速になるはずです。クロスジョインを実際に行う必要がある場合は、より多くのコード、サンプルデータ、およびより広範なスタックトレースをさらに詳しく説明してください。

+0

こんにちは、私は以下のdf1のような私の結合条件を持っています。放送のヒントを与えても、必ずしも大きな効果があるとは限らないので、あなたの質問を詳しく説明する必要があります。(ブロードキャスト(df2)、df1、Col(a)、Equalto(df2。Col(a))、inner) –

+0

パフォーマンス。可能であれば、あなたのDFのサイズとより多くのコード、おそらくDAGを指定してください – Garren

関連する問題