PySpark:查找另一个数组中是否存在值

im9ewurl  于 2023-10-15  发布在  Spark
关注(0)|答案(1)|浏览(118)

我有一个像下面这样的背包。尝试了Join和isin函数,但没有得到预期的输出,如下所示。不知道我错过了什么。如果有人能帮忙,我很感激。谢谢.
DF1:
| 名称|级|
| --|--|
| 汤姆|一|
| 迈克|B|
| 约翰|C|
DF2:
| 已批准_等级|描述|
| --|--|
| 一|核定职等|
预期输出:
| 名称|级|批准|
| --|--|--|
| 汤姆|一|是的|
| 迈克|B|没有|
| 约翰|C|没有|

v9tzhpje

v9tzhpje1#

请在pyspark中使用“join "连接表,然后使用条件筛选结果。检查下面的解决方案。

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, when

spark = SparkSession.builder.getOrCreate()

data1 = [('Tom', 'A'),
     ('Mike', 'B'),
     ('John', 'C')]
df1 = spark.createDataFrame(data1, ['Name', 'Grade'])

data2 = [('A', 'Approved grade')]
df2 = spark.createDataFrame(data2, ['Approved_Grades', 'Description'])

merged_df = df1.join(df2, df1.Grade == df2.Approved_Grades, 'left') \
.withColumn('Approved', when(col('Approved_Grades').isNull(), 'No').otherwise('Yes')) \
.drop('Approved_Grades', 'Description')

merged_df.show()

请使用上面的代码,并尝试是否有效。谢谢

相关问题