我已经扁平化了嵌套的JSON文件,现在我面临着使用PySpark获取实际列名的歧义问题。
具有以下架构的Dataframe:
在展平之前:
root
|-- x: string (nullable = true)
|-- y: string (nullable = true)
|-- foo: struct (nullable = true)
| |-- a: float (nullable = true)
| |-- b: float (nullable = true)
| |-- c: integer (nullable = true)展平后:
root
|-- x: string (nullable = true)
|-- y: string (nullable = true)
|-- foo_a: float (nullable = true)
|-- foo_b: float (nullable = true)
|-- foo_c: integer (nullable = true)是否可以只获取数据框中列的实际名称,如下图所示:
root
|-- x: string (nullable = true)
|-- y: string (nullable = true)
|-- a: float (nullable = true)
|-- b: float (nullable = true)
|-- c: integer (nullable = true)发布于 2021-08-24 10:05:30
可以,只需执行以下操作,而不是扁平化:
select("*", "foo.*").drop("foo")或
select("x", "y", "foo.*")foo.*语法从结构中提取所有字段,并将它们放入“顶级”。
https://stackoverflow.com/questions/68904392
复制相似问题