你好,
我不確定如果我理解你的問題直接讓我試一試:
- - - - - -T他約束如果id2名稱表中填充然後加入id2:所以我認為你也可以可以先列稱為“id”得到id2如果填充和id1如果不是填充:
從pyspark。sql函數作為F name_table = name_table導入。withColumn (“id”, F.when (F.col (id2) .notnull (), F.col (id2)) .otherwise (F.col (id1的))
——我需要加入事務表id表。
創建這後,你可以使用這個新的id加入事務表上的名字:
transaction_table = transaction_table。加入(name_table = (“id”),如何=“內在”)
所以希望你會做一個內連接,但這也可能是一個不同的連接。更多的信息是:https://spark.apache.org/docs/3.1.2/api/python/reference/api/pyspark.sql.DataFrame.join.html
此外,如果name_table是一張小桌子那麼建議使用F。廣播的加入速度/平滑:
從pyspark。sql導入函數F transaction_table = transaction_table.join (F.broadcast (name_table) = (“id”),如何=“內在”)
更多信息:https://spark.apache.org/docs/3.1.1/api/python/reference/api/pyspark.Broadcast.html。
我希望這有助於進一步,其他請。