假设我有以下join语句:
leftTable.join(
rightTable,
leftTable(joinColumn) =!= null and leftTable(joinColumn) === rightTable(joinColumn),
"left_outer"
)spark是否会对leftTable的join列中有null值的行进行混洗?
我最近遇到了一个偏差,并试图确定它是否可能是因为空值。因此,在这种情况下,我想知道spark是在混洗之前尽可能地评估连接语句,以最小化混洗,还是先混洗,然后在匹配两个表时评估所有内容。
发布于 2021-08-02 21:51:09
如果不影响您的功能,您可以简单地在leftTable数据帧上添加过滤器。
leftTable
.where(leftTable(joinColumn) =!= null)
.join(
rightTable,
leftTable(joinColumn) === rightTable(joinColumn),
"left_outer"
)https://stackoverflow.com/questions/68627660
复制相似问题