python - 如何根据使用 pyspark 匹配的单元名更新 DF1 中 DF2 的所有值
问题描述
我有两个数据框,我想根据匹配的单元名更新 DF1 中 DF2 的所有值。我将如何在 pyspark 中找到。请帮忙。 在此处输入图像描述
解决方案
我在两个数据框中看到的唯一区别在于siteAddress
列中。为了能够使用该解决方案,您需要重命名siteAddress
其中一个数据框中的列。我在第二个数据框中重命名它
df2= df2.withColumnRenamed('siteAddress', 'siteAddress_y')
之后,您需要加入两个数据框并将所有值放入同一数据框中。
df = df1.join(df2, on="Name", how="left")
一旦你这样做了,你会注意到数据集中有一堆null
值。我们使用合并功能删除它
import pyspark.sql.functions as F
df\
.withColumn("UpdatedsiteAddress", F.coalesce(df.siteAddress, df.siteAddress_y))\
.drop("siteAddress", "siteAddress_y")
最后一行是删除多余的列
推荐阅读
- python - 如何在 python 函数中使用气流 jinja 模板?
- java - Keycloak 服务器作为 Eureka 客户端
- kubernetes - Microk8s 入口 - defaultBackend
- uitableview - 如何在主线程内推送 DiffableDataSourceSnapshot 更新?
- javascript - 无法加载本地 JSON 文件
- python - 为 virtualenv 设置 PYTHONIOENCODING=utf-8
- prometheus - Victoria Metrics - 删除缺少标签的时间序列
- excel - Excel,动态参考日期
- r - 在 R 中使用 lag 函数调用多个值
- python-3.x - NoSuchElementException 硒