如何合并join pyspark的每个元素



我有一个连接参数(列)数组:

attrs = ['surname', 'name', 'patronymic', 'birth_date',
'doc_type', 'doc_series','doc_number']

我试图连接两个表就像这样,但我需要合并每列连接行为正常(因为它不会正确连接,如果有null)

new_df = pre_df.join(res_df, attrs, how='leftanti')

我已经尝试列出每一个条件,但有没有可能这样做的另一种方式?

所以我已经弄清楚了:

join_attrs = [F.coalesce(pre_df[elem], F.lit('')) == F.coalesce(res_df[elem], F.lit('')) for elem in attrs]

也可以,但不确定哪个更快:

join_attrs = [pre_df[elem].eqNullSafe(res_df[elem]) for elem in attrs]

如果尝试合并具有相同列的两个数据集。您不执行join,而是执行union。Try with df = df. unionbyname (df2)

最新更新