![](/img/trans.png)
[英]How to create a function that checks if one row in a PySpark column of a dataframe matches another row in the same column of another 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.