簡體   English   中英

創建一個新列,詳細說明一個 PySpark dataframe 中的行是否與 dataframe 的另一列中的行匹配

[英]Create a new column that details if rows in one PySpark dataframe matches a a row in another column of a dataframe

我想創建一個 function,它從 PySpark 中的左連接創建一個新列,詳細說明一列中的值是否逐行匹配或不匹配另一個 Z6A8064B5DF479455500553C47C5507 的列。

For example, we have one PySpark dataframe (d1) that has columns ID and Name and another PySpark dataframe (d2) that has the same columns - ID and Name.

我正在嘗試制作一個 function 來連接這兩個表並創建一個新列,如果兩個數據幀中存在相同的 ID,則顯示“真”或“假”。

到目前為止,我有這個

def doValuesMatch(df1, df2):
    left_join = df1.join(df2, on='ID', how='left')
    df1.withColumn('MATCHES?', .....(not sure what to do here))

我是 PySpark 的新手,有人可以幫我嗎? 提前致謝。

它可能是這樣的。

data1 = [
    (1, 'come'),
    (2, 'on'),
    (3, 'baby'),
    (4, 'hurry')
]
data2 = [
    (2, 'on'),
    (3, 'baby'),
    (5, 'no')
]
df1 = spark.createDataFrame(data1, ['id', 'name'])
df2 = spark.createDataFrame(data2, ['id', 'name'])
df2 = df2.withColumnRenamed('name', 'name2')
df = df1.join(df2, on='id', how='left').withColumn('MATCHES', F.expr('if(name2 is null,"Flase","True")'))
df.show(truncate=False)

暫無
暫無

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

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