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

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

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

b0zn9rqh

b0zn9rqh1#

可以使用左连接:

  1. from pyspark.sql import functions as F
  2. result_df = input_df.join(main_df, ["A", "B", "C"], "left") \
  3. .withColumn("Point", F.coalesce(F.col("Point"), F.lit("NA")))
  4. result_df.show()
  5. # +---+---+---+-----+
  6. # | A| B| C|Point|
  7. # +---+---+---+-----+
  8. # | 0| 0| 0| NA|
  9. # | 1| 0| 1| P2|
  10. # | 1| 1| 1| P1|
  11. # | 0| 1| 1| NA|
  12. # +---+---+---+-----+
展开查看全部

相关问题