首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PySpark展平嵌套JSON后的实际列名

问使用PySpark展平嵌套JSON后的实际列名
EN

Stack Overflow用户
提问于 2021-08-24 08:44:45
回答 1查看 73关注 0票数 1

我已经扁平化了嵌套的JSON文件,现在我面临着使用PySpark获取实际列名的歧义问题。

具有以下架构的Dataframe:

在展平之前:

代码语言:javascript
复制
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)

展平后:

代码语言:javascript
复制
root
 |-- x: string (nullable = true)
 |-- y: string (nullable = true)
 |-- foo_a: float (nullable = true)
 |-- foo_b: float (nullable = true)
 |-- foo_c: integer (nullable = true)

是否可以只获取数据框中列的实际名称,如下图所示:

代码语言:javascript
复制
root
 |-- x: string (nullable = true)
 |-- y: string (nullable = true)
 |-- a: float (nullable = true)
 |-- b: float (nullable = true)
 |-- c: integer (nullable = true)
EN

回答 1

Stack Overflow用户

发布于 2021-08-24 10:05:30

可以,只需执行以下操作,而不是扁平化:

代码语言:javascript
复制
select("*", "foo.*").drop("foo")

或

代码语言:javascript
复制
select("x", "y", "foo.*")

foo.*语法从结构中提取所有字段,并将它们放入“顶级”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68904392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档