比较 Pyspark 中的列名
Posted
技术标签:
【中文标题】比较 Pyspark 中的列名【英文标题】:Comparing column names in Pyspark 【发布时间】:2020-05-27 00:57:06 【问题描述】:我有一个从源文件创建的数据框。
我从数据库中的表创建了另一个数据框。
源文件有时可能会添加新列。
例如:今天的源文件有以下列
col1,col2,col3,col4
几个月后,源文件有以下几列
col1,col2,col5,col3,col4,col6
注意:新添加的列的顺序也可以更改,它们不一定在文件末尾。
我想将这些列与数据库 (df2)(具有静态列)中的数据框进行比较,并想要数据框中新添加的列的名称。
(我会定期向数据表添加列,因此任何新列都会添加到数据库中。)
目前我正在做以下事情
set(df1) - set(df2)
下面给出了
col5,col6
新添加列的列名,但我无法将这些列名转换为数据框,以便我可以将新列名提取到数据库表中
(只是要提取的列名 - 通知用户源文件中有新列) 请帮忙。
【问题讨论】:
【参考方案1】:以下内容对我有用。
df = set(df1) - set(df2)
df3 = spark.createDataFrame(df,StringType())
【讨论】:
以上是关于比较 Pyspark 中的列名的主要内容,如果未能解决你的问题,请参考以下文章
PySpark:如何将数据框与存储在其他变量中的列名连接起来
映射 dict(来自 rdd)以递归方式更改 Python/PySpark 中的列名
Informix JDBC PySpark 将列名中的结果作为列值读取