如何解决在pyspark中动态生成连接条件
有人可以建议一种方法来传递listofJoinColumns和条件加入pyspark。
例如我需要连接的列要从列表中动态获取,并且还希望在连接上传递其他条件。此处说明了与Scala中类似的操作:generating join condition dynamically in spark/scala
我正在pyspark中寻找类似的解决方案。
我了解我可以使用该联接,例如 a.join(b,listofjoincolumns,how =“ inner”) 但我也想通过加入条件:
我想称其为 a.join(b,连接列和连接条件列表,how =“ inner”)
有人可以在pyspark中建议一种方法吗?
解决方法
尝试将联接列列表转换为联接条件本身:
from functools import reduce
from operator import and_
df_a.join(df_b,reduce(and_,[df_a[col] == df_b[col] for col in listofcols],joinCond)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。