簡體   English   中英

使用 Pyspark (databricks) 連接兩個表和連接列

[英]Join two tables and concat columns using Pyspark (databricks)

我的數據庫中有兩個表。 我還需要使用條件table1.id = table2.id在這兩個表上執行左外連接,源應該匹配

下面是我的兩個源表。

表格1 :

`source    id        type `

  eu2   10000162      N4    
  sus   10000162      M1    
  pda   10000162      XM 

表二:

`source   id         code1        code2`

  eu2   10000162        CDNG_GRP     PROB_CD
  sus   10000162        AANV          NW
  pda   10000162        PM2          VLPD

預期輸出:

source id type concat

  eu2   10000162      N4    CDNG_GRP-PROB_CD
  sus   10000162      M1    AANV-NW
  pda   10000162      XM    PM2-VLPD

我希望在 Dataframe 中得到這個結果。

提前致謝 !

要獲得所需的結果,您需要對sourceid列執行連接。

import pyspark.sql.functions as F
...
df = df1.join(df2, on=['id', 'source'], how='left') \
    .withColumn('concat', F.concat('code1', F.lit('-'), 'code2')) \
    .select(['source', 'id', 'type', 'concat'])
df.show(truncate=False)

Spark 總是返回一個數據幀(直到指定不這樣做)

試試這個:考慮到你的表已經是火花數據框

left_join = table1.join(table2, table1.id==table1.id, "leftouter")
left_join.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM