我有一列主键。因为每个表的主键数量可能会改变,所以我存储了主键。我想要基于 pk_list
中的列将两个数据帧连接起来。
pk_list=['col1',col2', .... 'coln']
现在我的代码看起来是这样的:
full_load_tbl_nc = full_load_tbl.join(delta_load_tbl, (col(f) == col(s) for (f,s) in zip(pk_list,pk_list) ) , "leftanti")
当我运行代码时,出现以下错误:
使用 import from pyspark.sql.functions import col 将列表转换为pyspark.sql.column也会导致col(pk_list)失败。 文件 "/mnt/yarn/usercache/root/appcache/application_1544185829274_0001/container_1544185829274_0001_01_000001/pyspark.zip/pyspark/sql/dataframe.py" 的第818行,join函数抛出AssertionError:on应该是Column或Column列表。
join
在pyspark
中接受一个列列表作为参数来进行连接。你不能只简单地执行full_load_tbl.join(delta_load_tbl, pk_list, how="leftanti")
吗? - undefined