我正在尝试解决一个问题,我有两个具有以下详细信息的 pyspark 数据框:
df1
| value |
| ----- |
| the |
| quick |
| brown |
| fox |
| brown |
df2
| value |
| ------ |
| brown |
| fox |
| brown |
我需要输出一个新标志来检查
df1.value
中的值是否存在于df2.value
中
output
| value | flag |
| ----- |----- |
| the | 0 |
| quick | 0 |
| brown | 1 |
| fox | 1 |
| brown | 1 |
(
df1
.join(df2.withColumn("flag",F.lit(1)).distinct(), on="value", how="left_outer")
.fillna(0)
)
输出:
|value|flag|
+-----+----+
| fox| 1|
| the| 0|
|brown| 1|
|brown| 1|
|quick| 0|
+-----+----+
没有连接的选项:
df1.withColumn(
"flag",
F.col('value').isin(list(df2.distinct().toPandas()['value'])).cast('int')
)