根据另一个 pyspark 数据帧列中的值匹配更新 pyspark 数据帧列

时间:2021-05-17 15:30:39

标签: apache-spark pyspark apache-spark-sql

我需要帮助在 pyspark 数据帧中创建一个新列 new_id,其值取决于来自另一个 pyspark 数据帧的字符串类型列 address 的匹配,如果它没有匹配列 address,然后用 null 填充。

如下:

df1:

  df1_value       address  new_id
          1   'street 57'    6248
          0   'street 99'    9543
          0   'street 23'    1673
          1   'street 14'    3557

df2:

   df2_value    old_id       address
          'A'   'A-12'   'street 57'
          'A'   'A-09'   'street 98'
          'B'     null   'street 23'
          'B'   'A-85'   'street 14'
          'A'     null   'street 82'

new_df2:

   df2_value    old_id       address  new_id
          'A'   'A-12'   'street 57'    6248
          'A'   'A-09'   'street 98'    null
          'B'     null   'street 23'    1673
          'B'   'A-85'   'street 14'    3557
          'A'     null   'street 82'    null

我知道如何使用连接在 python 中执行此操作,但我不知道 pyspark 中是否有类似的东西。

1 个答案:

答案 0 :(得分:1)

这是一个简单的左连接。这应该有效:

df2.join(df1, "address", left).show()