python - 基于相同的列名加入多个 Pyspark 数据框
问题描述
我是 Pyspark 的新手,所以我坚持以下几点:
我有 5 个数据帧,每个数据帧都有相同的主键,称为关注代码。我需要将所有这些数据帧外部连接在一起,并且需要从 4 个数据帧中删除名为关注代码的 4 列。
例如:Dataframe Df1 外连接 Df2 基于关注代码 Dataframe Df1 外连接 Df3 基于关注代码等等。
我当前的 Pyspark 语法如下所示:
df1.join(df2,["concern_code"])\
.join(df3,df1["concern_code"] == df3["concern_code"])\
.join(df4,df1["concern_code"] == df4["concern_code"])\
.join(df5,df1["concern_code"] == df5["concern_code"])\
.show()
我如何需要修复语法以执行外连接并拥有一个新数据框的最终版本,它只有一个关注代码列?
解决方案
如果您在列上加入两个数据框,那么列将被复制,就像您的情况一样。所以我建议使用一个字符串数组,或者只是一个字符串,即'id',来连接两个或多个数据帧。
下面的代码不应重复列名:
df1.join(df2,on='id', how='outer')\
.join(df3,on='id', how='outer')\
.join(df4,on='id', how='outer')\
.join(df5,on='id' how='outer')\
.show()
推荐阅读
- git - 是否可以将服务帐户与 Git-Secrets 一起使用?
- python - 提取 span 标签内的信息
- c# - .NET Core 全局到和自包含 exe
- mongodb - 各种规模的MongoDB数据库性能对比
- tkinter - 我无法设置顶级标题
- ios - 为 UIView 设置动画以从屏幕上移出然后从底部无休止地移出屏幕
- java - 如何在同一个安装程序中包含 2 个 exe 文件(在 INNO 设置中)
- java - 如何首先对数组最大值进行排序,其他所有内容都升序
- python - Django中的搜索栏?
- mongodb - 如何在多个文档中搜索有孩子的属性,而不知道文档的 ID