【发布时间】:2019-03-11 17:43:56
【问题描述】:
我想要一个灵活的连接条件,例如可以作为字符串传递(或任何其他建议?)。例如,在下面的语句中,FLEXIBLE_CONDITION 表达式可以在不同的运行中改变。
val df3 = df1.join(df2, FLEXIBLE_CONDITION, "fullouter")
几个例子:
(1) df1(s"query") === df2 (s"query_df2")
(2) df1(s"id") === df2(s"id_df2") && df1(s"item") === df2(s"item_df2")
(3) Or combination of (1) and (2) or any other condition
需要注意的是,根据它们进行join的列名是不同的。例如,在 (1) 中,df1 中的列名是 query,而 df2 中的列名是 query_df2,依此类推。
FLEXIBLE_CONDITION 不应该是硬编码的,但可以是一个输入,并且可能会经常更改。或者可以基于一组输入(例如列名)自动化。
【问题讨论】:
标签: scala apache-spark join