【发布时间】:2021-08-18 02:46:35
【问题描述】:
我有以下 pyspark 数据帧 df,我想检查 id 是否存在于另一个数据帧 df1 中,并为每一行返回 true 和 false。
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
import pyspark.sql.functions as F
# Create SparkSession
data=[["12345","2020-02-01"],["6789","2019-03-01"],["12345","2021-03-01"],["7890",""],["5000","2021-21-01"],["80000","1900-01-01"],["90000","2000-01-01"],["","2000-01-01"]]
df=spark.createDataFrame(data,["id","Date"])
df.show()
data=[["12345"],["6789"],["7890"],["90000"]]
df1=spark.createDataFrame(data,["id"])
df1.show()
df 数据框:
| id | Date |
|---|---|
| 12345 | 2020-02-01 |
| 6789 | 2019-03-01 |
| 12345 | 2021-03-01 |
| 7890 | |
| 5000 | 2021-21-01 |
| 80000 | 1900-01-01 |
| 90000 | 2000-01-01 |
| 2000-01-01 |
df1 数据框:
| id |
|---|
| 12345 |
| 6789 |
| 7890 |
| 90000 |
我希望根据 df 与 df1 的比较得到以下输出。
| id | Check |
|---|---|
| 12345 | True |
| 6789 | True |
| 12345 | True |
| 7890 | True |
| 5000 | False |
| 80000 | False |
| 90000 | True |
| False |
【问题讨论】:
-
你试过什么?这只是一个简单的左连接。
-
df.join(df1, ['id'], 'left').show() 我如何获得真假值
-
加入后只检查日期是否为空