0
私はScalaを使用してSparkのデータフレームからデータをロードして処理したいと考えています。 生のSQLステートメントは、次のようになりますデータフレームからデータを選択して処理する最も効率的な方法
私がこれまで何をやったかINSERT INTO TABLE_1
(
key_attribute,
attribute_1,
attribute_2
)
SELECT
MIN(TABLE_2.key_attribute),
CURRENT_TIMESTAMP as attribute_1,
'Some_String' as attribute_2
FROM TABLE_2
LEFT OUTER JOIN TABLE_1
ON TABLE_2.key_attribute = TABLE_1.key_attribute
WHERE
TABLE_1.key_attribute IS NULL
AND TABLE_2.key_attribute IS NOT NULL
GROUP BY
attribute_1,
attribute_2,
TABLE_2.key_attribute
: は、私は、SELECT文からのデータフレームを作成し、TABLE_2データフレームでそれに参加しました。
val table_1 = spark.sql("Select key_attribute, current_timestamp() as attribute_1, 'Some_String' as attribute_2").toDF();
table_2.join(table_1, Seq("key_attribute"), "left_outer");
そうでもない多くの進歩私は多くの困難に直面しているので:
- 私は効率的に処理データをSELECTの処理方法を教えてください。別々のDataFramesにすべてを保存しますか?
- WHERE/GROUP BY句をいくつかのソースの属性とともに挿入するにはどうすればよいですか?
- Spark SQL以外の方法はありますか?取り扱い中
Spark SQLは、特にSpark 2を使用して、効率的な方法で最適化を実行し、高価な操作を実行することができます。データソースをテーブルとして登録し、元のクエリを変更せずにSpark SQL上で実行しようとしましたか? – stefanobaghino
Spark DataFrameをハイブテーブルに変換し、spark sqlを使用してテーブルをクエリしますか? –