2

我没有在任何地方做 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()....))

但我不想使用它,因为它很慢。

请帮忙!

4

0 回答 0