【发布时间】:2017-04-28 08:22:35
【问题描述】:
我想执行如下广播加入:
val z = main.as("m").join(broadcast(df.as("i")), $"m.sno" === $"i.sno", "left_outer")
但我想将连接条件 $"m.sno" === $"i.sno" 作为参数传递。
我尝试了以下方法: 首先
val cond = """ $"m.sno" === $"i.sno" """
val z = main.as("m").join(broadcast(df.as("i")), $cond, "left_outer")
我发现连接中的参数必须是列。所以我将它转换为列并尝试了。
val c = col(c)
val z = main.as("m").join(broadcast(df.as("i")), c, "left_outer")
我仍然遇到错误。如何解决这个问题。 注意:“cond”变量将是字符串。
【问题讨论】:
标签: scala apache-spark join parameter-passing apache-spark-sql