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

问题描述 投票:0回答:1

我有一个如下所示的数据框。尝试了 Join 和 isin 函数,但没有得到如下所示的预期输出。不知道我错过了什么。如果有人可以提供帮助,请感激。谢谢。

DF1:

姓名 等级
汤姆 A
迈克 B
约翰 C

DF2:

已批准_成绩 描述
A 认可等级

预期输出:

姓名 等级 已批准
汤姆 A 是的
迈克 B 没有
约翰 C 没有
dataframe apache-spark pyspark aws-glue pyspark-pandas
1个回答
0
投票

请使用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()

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

© www.soinside.com 2019 - 2024. All rights reserved.