PySpark:使用ID匹配的 Dataframe B的值更新 Dataframe A的列值

6yt4nkrj  于 2023-03-11  发布在  Spark
关注(0)|答案(1)|浏览(202)

假设我们有dfA:
| 识别号|分数|
| - ------|- ------|
| A类|二十个|
| A类|四十|
| A类|六十|
| B|十个|
| B|九十|
和dfB:
| 识别号|分数|
| - ------|- ------|
| A类|六十|
| B|九十|
预期输出:
| 识别号|分数|
| - ------|- ------|
| A类|六十|
| A类|六十|
| A类|六十|
| B|九十|
| B|九十|
如何根据PySpark中的匹配ID用dfB的分数更新dfA中的分数列?

anauzrmj

anauzrmj1#

您的数据框

df_1
+---+------+
| ID|Scores|
+---+------+
|  A|    20|
|  A|    40|
|  A|    60|
|  B|    10|
|  B|    90|
+---+------+

df_2
+---+------+
| ID|Scores|
+---+------+
|  A|    60|
|  B|    90|
+---+------+

1.在连接之前,将Scores列名从 df_1 重命名为old_scores

df_1 = df_1.withColumnRenamed("Scores", "old_scores")

1.使用内部联接来匹配使用公共键列的两个DataFrame。

df = df_1.join(df_2, "ID")

1.从df_1删除old_scores

df.drop("old_scores").show()

输出:

+---+------+
| ID|Scores|
+---+------+
|  A|    60|
|  A|    60|
|  A|    60|
|  B|    90|
|  B|    90|
+---+------+

相关问题