我想比较输入Dataframe和主Dataframe,并将匹配行的值返回给输入数据,考虑下面的例子输入Dataframe101000111011型主DataframeABC点111P1101P2将输入与主Dataframe进行比较后,结果如下所示输出DataframeABCP点101P2000NA111P1011NA
b0zn9rqh1#
可以使用左连接:
from pyspark.sql import functions as Fresult_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|# +---+---+---+-----+
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|
1条答案
按热度按时间b0zn9rqh1#
可以使用左连接: