我没有在任何地方做 LeftSemi join,也没有使用 python UDF。加入两个数据框时,我仍然收到此错误。
df1 - 一列,是表的主键,比如“customerHash”。它可能是空的(实际上在我目前的情况下,它是空的)。
df2 - 一个也有 customerHash 列的表,但它的主键列不同。
result = df1\
.select("customerHash")\
.distinct()\
.join(df2, ["customerHash"], 'inner')
代码成功运行,但是当我尝试显示/收集/保留结果表时,它会引发上述错误。我完全不知道为什么会这样——我的猜测是因为 df1 是空的。但是当表为空时,连接不会抛出错误,对吧?
我的主要目标是仅获取其 customerHash 在 df1 中的 df2 行。我可以使用
df2.filter(F.col("customerHash").isin(df1.select("customerHash").distinct().collect()....))
但我不想使用它,因为它很慢。
请帮忙!