Java Spark:动态构造连接表达式
我必须使用连接表达式连接两个数据集:Java Spark:动态构造连接表达式,java,apache-spark,Java,Apache Spark,我必须使用连接表达式连接两个数据集: ds1.join(ds2, joinExpr) joinExpr例如可以是ds1.col(price).equals(ds2.price) 但我必须使用外部属性文件动态外部化联接列: -price -name -adress ... 是否可以动态构造此表达式?您可以使用asjoinExpr。字符串参数可以是任何可以从配置文件加载或构造的有效SQL表达式 import static org.apache.spark.sql.functions.*; //构
ds1.join(ds2, joinExpr)
joinExpr
例如可以是ds1.col(price).equals(ds2.price)
但我必须使用外部属性文件动态外部化联接列:
-price
-name
-adress
...
是否可以动态构造此表达式?您可以使用asjoinExpr
。字符串参数可以是任何可以从配置文件加载或构造的有效SQL表达式
import static org.apache.spark.sql.functions.*;
//构造测试数据
df1=。。。
//+---+---+
//|a | b|
//+---+---+
//| 1| 2|
//| 3| 4|
//+---+---+
df2=。。。
//+---+---+
//|c|d|
//+---+---+
//| 1| 1|
//| 3| 5|
//+---+---+
//定义联接条件。它可以从文件中加载
String joinCondition=“a=c,b>d”;
join(df2,expr(joinCondition)).show();
//+---+---+---+---+
//|a | b | c | d|
//+---+---+---+---+
//| 1| 2| 1| 1|
//+---+---+---+---+