我有一个像下面这样的背包。尝试了Join和isin函数,但没有得到预期的输出,如下所示。不知道我错过了什么。如果有人能帮忙,我很感激。谢谢.DF1:| 名称|级|| --|--|| 汤姆|一|| 迈克|B|| 约翰|C|DF2:| 已批准_等级|描述|| --|--|| 一|核定职等|预期输出:| 名称|级|批准|| --|--|--|| 汤姆|一|是的|| 迈克|B|没有|| 约翰|C|没有|
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()
请使用上面的代码,并尝试是否有效。谢谢
1条答案
按热度按时间v9tzhpje1#
请在pyspark中使用“join "连接表,然后使用条件筛选结果。检查下面的解决方案。
请使用上面的代码,并尝试是否有效。谢谢