取消
顯示的結果
而不是尋找
你的意思是:

創建UDF pyspark

LiliL
新的因素

你好,

需要這個社區的幫助,不幸的是創建udf不是我最強的技能。

我需要創建UDF將加入兩個表結合在一起,問題是,一個表有兩個id列

表有id1和id2名稱

事務表隻有id

我需要加入事務表id表。約束條件是如果id2名稱表中填充然後用id1加入id2其他人加入

我試過一些事情但是沒有一個是100%正確的。

lilil_0 - 1690464091302. - png

lilil_1 - 1690464169973. - png

謝謝你!

1回複1

Siebert_Looije
貢獻者

你好,

我不確定如果我理解你的問題直接讓我試一試:
- - - - - -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

我希望這有助於進一步,其他請。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map