我想使用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语句创建了一个DataFrame,并将其与TABLE_2 DataFrame结合在一起。
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");
因为我遇到很多困难所以没有太大的进步:
答案 0 :(得分:0)
处理的几个步骤是 -
首先使用原始数据创建数据框
然后将其保存为临时表。
您可以使用filter()或“sparksql中的where where”并获取 结果数据框
然后就像你使用的那样 - 你可以使用带有数据帧的jons。您可以 将dafaframes视为表格的表示。
关于效率,由于处理将并行进行,因此需要注意。如果您想了解更多有关效率的信息,请提及。