澄清在Scala中使用spark数据框

我有3个数据框'u','join5'和站点。

这是数据框'u'的架构。

scala> println(u.printSchema)
root
 |-- split_sk: integer (nullable = true)
 |-- new_date: string (nullable = true)

现在使用联接“ join5”和“ site”数据帧创建join6。这是我的2个问题-

  • 以下查询中的“ u(“ split_sk”)'是什么?在查询中未明确给出与'u'的联接时,是否可以使用数据框'u'的列进行随机比较?

  • 在Scala中,尤其是在以下查询中,()符号表示什么?

val join6 = join5.join(site,u("split_sk") <=> site("split_key") &&($"new_date" >= $"effective_dt") && ($"new_date" <=  $"expiry_dt"),"left")
zubing 回答:澄清在Scala中使用spark数据框

问题1,

是的,“ split_sk”是“ u”中的列。这类似于SQL a.column1 = b.column2。这是指定与上面相同的一种火花方式。

要回答另一个问题,可以,可以指定查询中不存在的数据框的某些列。最有可能的情况是在join5顶部创建了join5数据框

问题2,

<=>被称为NULL SAFE连接。 请参阅此Spark SQL "<=>" operator

本文链接:https://www.f2er.com/3167976.html

大家都在问