我已经阅读到在spark中,您可以像这样轻松地执行相关标量子查询:
select
column1,
(select column2 from table2 where table2.some_key = table1.id)
from table1
我还没弄清楚的是如何在DataFrame API中做到这一点。我能想到的最好的办法就是加入。问题是在我的特定情况下,我要加入一个枚举式查找表,该查找表实际上适用于多个列。
下面是DataFrame代码的示例。
Dataset<Row> table1 = getTable1FromSomewhere();
Dataset<Row> table2 = getTable2FromSomewhere();
table1
.as("table1")
.join(table2.as("table2"),
col("table1.first_key").equalTo(col("table2.key")), "left")
.join(table2.as("table3"),
col("table1.second_key").equalTo(col("table3.key")), "left")
.select(col("table1.*"),
col("table2.description").as("first_key_description"),
col("table3.description").as("second_key_description"))
.show();
在DataFrame API中找出如何执行此操作的任何帮助将不胜感激。
答案 0 :(得分:0)
我还没弄清楚的是如何在DataFrame API中做到这一点。
因为根本没有speed
API可以直接表达(没有显式DataFrame
)。将来可能会改变: