首页 > 解决方案 > 向 pyspark 中的数据框添加列

问题描述

我想根据现有列的值使用pyspark.

在此处输入图像描述

例如,如果这是原始数据框,我想添加一个名为“父级数据”的新列,其中包含基于列“parent_id”的父级数据,以便生成的数据框如下所示。

在此处输入图像描述

任何帮助,将不胜感激。谢谢你。

标签: pythondataframepyspark

解决方案


我确信有多种方法可以实现这一目标。但是,最简单的方法是使用 2 列现有数据框创建一个新数据框。然后加入 2 数据框来实现这一点。

这是代码

df1 = pd.DataFrame([[1, 'a', 2], [2, 'b', 3], [3, 'c', 1]], columns=["id", "data", "parent_id"])
print(df1)
sparkdf=spark.createDataFrame(df1)
sparkdf.show()
sparkdf2=sparkdf.select('id','data')
sparkdf2.show()
sparkdf.registerTempTable("sparkdf")
sparkdf2.registerTempTable("sparkdf2")

sparkdf3=spark.sql('select a.id,a.data,a.parent_id,b.data from sparkdf as a join sparkdf2 as b on a.parent_id=b.id')
sparkdf3.show()

推荐阅读