pandas - 比较 Pyspark 中的列名
问题描述
我有一个从源文件创建的数据框。
我有另一个从数据库中的表创建的数据框。
源文件有时可能会添加新列。
例如:今天的源文件有以下列
col1,col2,col3,col4
几个月后,源文件具有以下列
col1,col2,col5,col3,col4,col6
注意:新添加的列的顺序也可以更改,它们可能在文件末尾也可能不一定在文件末尾。
我想将这些列与数据库(df2)(具有静态列)中的数据框进行比较,并想要数据框中新添加的列的名称。
(我会定期向数据表添加列,因此任何新列都会添加到数据库中。)
目前我正在做以下事情
set(df1) - set(df2)
这给出了以下
col5,col6
新添加列的列名,但我无法将这些列名转换为数据框,以便我可以将新列名提取到数据库表中
(只是要摄取的列名 - 通知用户源文件中有新列)
请提供任何帮助。
解决方案
以下对我有用。
df = set(df1) - set(df2)
df3 = spark.createDataFrame(df,StringType())
推荐阅读
- ios - 如何返回异步json请求的结果
- c++ - Converting mysqlx::Value to std::string with special characters
- azure - Azure 表存储错误请求 - 查询语法错误
- apache-kafka - 有人用过 Apache Kafka 的 CNCF CloudEvent 吗?
- eclipse - Eclipse (STS) 开始出现 CreateProcess 错误=1450,系统资源不足,无法完成请求的服务
- hadoop - 如何配置 localhost 的实际设置?
- javascript - Google Chrome 扩展 chrome.storage.sync 而不是 LocalStorage
- node.js - MEAN 堆栈应用程序未从 MongoDB 检索数据
- tcl - 与 tcl 匹配的字符串模式
- java - 使用while循环保持分数的问题(Java)