比较两个Dataframe并返回pyspark中一行的结果

h7wcgrx3  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(495)

我想比较输入Dataframe和主Dataframe,并将匹配行的值返回给输入数据,
考虑下面的例子
输入Dataframe
101000111011型
主Dataframe
ABC点111P1101P2
将输入与主Dataframe进行比较后,结果如下所示
输出Dataframe
ABCP点101P2000NA111P1011NA

b0zn9rqh

b0zn9rqh1#

可以使用左连接:

from pyspark.sql import functions as F

result_df = input_df.join(main_df, ["A", "B", "C"], "left") \
    .withColumn("Point", F.coalesce(F.col("Point"), F.lit("NA")))

result_df.show()

# +---+---+---+-----+

# |  A|  B|  C|Point|

# +---+---+---+-----+

# |  0|  0|  0|   NA|

# |  1|  0|  1|   P2|

# |  1|  1|  1|   P1|

# |  0|  1|  1|   NA|

# +---+---+---+-----+

相关问题