首页 > 解决方案 > 比较 Pyspark 中的列名

问题描述

我有一个从源文件创建的数据框。

我有另一个从数据库中的表创建的数据框。

源文件有时可能会添加新列。

例如:今天的源文件有以下列

col1,col2,col3,col4  

几个月后,源文件具有以下列

col1,col2,col5,col3,col4,col6  

注意:新添加的列的顺序也可以更改,它们可能在文件末尾也可能不一定在文件末尾。

我想将这些列与数据库(df2)(具有静态列)中的数据框进行比较,并想要数据框中新添加的列的名称。

(我会定期向数据表添加列,因此任何新列都会添加到数据库中。)

目前我正在做以下事情

set(df1) - set(df2)  

这给出了以下

col5,col6

新添加列的列名,但我无法将这些列名转换为数据框,以便我可以将新列名提取到数据库表中

(只是要摄取的列名 - 通知用户源文件中有新列)
请提供任何帮助。

标签: pandasdataframepyspark

解决方案


以下对我有用。

df = set(df1) - set(df2)
df3 = spark.createDataFrame(df,StringType())

推荐阅读