2017-06-01 17 views
0

私たちは、ハイブテーブルに顧客データを持ち、TBのデータを持つ別のハイブテーブルに販売データを持っています。複数の顧客の販売データを引き出し、ファイルに保存しようとしています。我々はこれまでに試した何同じデータフレーム内に複数のデータを挿入

我々は左外側と疲れは、顧客と販売テーブル間の結合が、理由はそれが動作していない巨大な販売データの。

val data = customer.join(sales,"customer.id" = "sales.customerID",leftouter) 

ので代替が特定の顧客領域リストに基づいて、データ形式売上テーブルを引くと、データが他のデータフレームで保存存在すると同じにデータをロードする場合、この領域データは、顧客データを持っているかどうかを確認することですすべての地域のデータフレーム。

私の質問は、データフレームのデータの複数の挿入がsparkでサポートされているかどうかです。

答えて

0

売上データフレームが顧客データフレームよりも大きい場合は、結合操作でデータフレームの順序を単純に切り替えることができます。私はそれが2GBよりも小さくする必要が信じてもあなたはまた、より小さなデータフレームをブロードキャストするスパークのためのヒントを追加することができ

val data = sales.join(customer,"customer.id" = "sales.customerID", leftouter) 

import org.apache.spark.sql.functions.broadcast 
val data = sales.join(broadcast(customer),"customer.id" = "sales.customerID", leftouter) 

を他のアプローチを使用してiterativlyデータフレームをマージするにもあります可能。この目的のために、unionメソッド(Spark 2.0+)またはunionAll(旧バージョン)を使用することができます。このメソッドはデータフレームを別のものに追加します。

val dataframes = Seq(df1, df2, df3) 
dataframes.reduce(_ union _) 
+0

OK、あなたは私の編集を参照してください@venkataデータフレーム – venkata

+0

に複数の挿入にコメントすることができます:あなたは、あなたがreduceと一緒unionを使用することができ、相互にマージするデータフレームのリストを持っている場合にはあなたの質問に答えるべきだと思います。 – Shaido

関連する問題