【发布时间】:2022-01-16 02:15:20
【问题描述】:
您将如何创建一个函数来检查数据框的两个 PySpark 列中的值是否与另一个 Pysark 数据框的相同两列中的值匹配?如果两列中的这些值存在于另一个数据框中,我想创建一个新列来显示验证。数据框没有相同的列,除了要加入的两列。我是 PySpark 的新手。下面的代码显示了一个在匹配一列时识别验证的函数:
def isValue_inTable(df1, df2, column_name,
df2_nonCorresponding_column):
df3 = (df1.join(df2, on=column_name, how='left')
.withColumn('Value_inTable',
F.when(df2[df2_nonCorresponding_column].isNull(),
False).otherwise(True)))
df3.select(column_name, 'Value_inTable').show()
上面的函数可以显示 PySpark df 的一列中的值是否存在于同一列的另一个 df 中。我想修改此代码以允许函数将 df1 中的两列中的值与 df2 中的两列中的值匹配,并让用户知道 df1 中的两列中的值是否存在于 df2 中的两列中。例如:
| firstname | lastname | gender |
|---|---|---|
| Sam | Smith | M |
| Anna | Rose | F |
| Robert | Williams | M |
| firstname | lastname | gender | salary |
|---|---|---|---|
| Gerogie | Smith | M | 3000 |
| Anna | Rose | F | 4100 |
| Robert | Williams | M | 6200 |
| firstname | lastname | values_do_notExist_inOtherTable |
|---|---|---|
| Sam | Smith | true |
| Anna | Rose | false |
| Robert | Williams | false |
【问题讨论】: