EmployeeDF.join(ExDF, col(“DepartmentID”)=col(“ExID”)).show
EmployeeDF.join(ExDF,
"
D
e
p
a
r
t
m
e
n
t
I
D
"
=
=
=
"DepartmentID"===
"DepartmentID"===“ExID”).show
EmployeeDF.join(ExDF, 'DepartmentID='ExID).show
EmployeeDF.join(ExDF, EmployeeDF(“DepartmentID”)===ExDF(“ExID”)).show
表示关系的参数joinExprs的类型是Column,而这里需要表达式的结果是值为true或false的Column类型,这必然会使用已有DataFrames中的列。由上面的例子可以看到有四种表示DataFrame中列的方法:
使用列函数col(),将列名字的字符串作为该函数的参数。
简单地使用$和字符串,就表示了名字为这个字符串的列。显然,这要求关系式中两边列的名字必须不同,否则就无法区分它们。
在可以明确区分关系列名字的边界的时候,即后面接着非字母数字时,可以用更简单的表示方法:单引号 ’ 加列名字。
第二个例子则是用DataFrame的名字括上了列名的字符串,就非常明确地表示了这个DataFrame的列。即使两列的名字相同也能区分它们。
可以看到,实际上前三种方法是等价的。
————————————————
版权声明:本文为CSDN博主「timothyzh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/timothyzh/article/details/90107014