Apache spark 根据另一个pyspark dataframe列中的匹配值更新pyspark dataframe列

Apache spark 根据另一个pyspark dataframe列中的匹配值更新pyspark dataframe列,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我需要帮助在pyspark dataframe中创建一个新列new\u id,其值取决于另一个pyspark datafarame中字符串类型列address的匹配,如果该列address上没有匹配项,则只需填充null即可 例如: df1: df2: 新(二) df2_value old_id address new_id 'A' 'A-12' 'street 57' 6248 'A' 'A-09' 'st

我需要帮助在pyspark dataframe中创建一个新列
new\u id
,其值取决于另一个pyspark datafarame中字符串类型列
address
的匹配,如果该列
address
上没有匹配项,则只需填充null即可

例如:

df1:

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中是否有类似的功能。

这是一个简单的左连接。这应该起作用:

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

它也是pyspark中的一个简单的左连接。请展示您尝试过的内容以及遇到的具体问题。谢谢@robert kossendey。我对join做了一些不同的操作,以防止得到重复的列,如下所示:
df2.alias(“a”).join(df1.alias(“b”)、df2['address']==df1['address'])。选择(“a.*”、“b.new_id”)
没问题,如果答案对您有帮助,请向上投票
   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
df2.join(df1, "address", left).show()