【发布时间】:2021-12-01 22:19:56
【问题描述】:
我有一个数据框,其中包含来自源文件的列不一致,每次加载都可以添加或删除新列
我为所需的列创建了一个列表,我正在尝试通过检查我的列表来添加数据框中已经缺少的新列
req_cols = ["A","B","C","D","E","F","G"]
df.show()
#+---+-----+---+---+----+
#| A| B | C | D | E |
#+---+-----+---+---+----+
#| 5 | 10 | 8 | 9 | 0 |
#+---+-----+---+---+----+
如果数据框存在,我现在检查列是否存在,如果不存在,我打算添加
for cols in req_cols:
if cols not in df.columns:
df = df.withColumns(cols,lit(None))
我遇到了一个错误,它说 cols 应该是一个字符串或一个有效的 spark 列,我做错了什么?我的数据框是否也一直覆盖?我可以使用什么替代解决方案?
添加缺少的 2 列后我需要的输出
#+---+-----+---+---+----+-----+-----+
#| A| B | C | D | E | F | G |
#+---+-----+---+---+----+-----+-----+
#| 5 | 10 | 8 |9 | 0 | | |
#+---+-----+---+---+----+-----+-----+
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql