返回顶部
首页 > 资讯 > 精选 >无法分解 Spark 数据框中的嵌套 JSON
  • 666
分享到

无法分解 Spark 数据框中的嵌套 JSON

字符串解析 2024-02-11 11:02:11 666人浏览 泡泡鱼
摘要

问题内容 我是 spark 新手。我试图展平数据框,但未能通过“爆炸”做到这一点。 原始数据框架构如下: id|approvalJSON 1|[{"approvertype":"1st

问题内容

我是 spark 新手。我试图展平数据框,但未能通过“爆炸”做到这一点。

原始数据框架构如下:

id|approvalJSON
1|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"approved"}]
2|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"rejected"}]

我需要将其转换为以下架构

id|approvaltype|status
1|1st line manager|approved
1|2nd line manager|approved
2|1st line manager|approved
2|2nd line manager|rejected

我已经尝试过

df_exploded = df.withcolumn("approvaljson", explode("approvaljson"))

但是我得到了错误:


Cannot resolve "explode(ApprovalJSON)" due to data type mismatch:
parameter 1 requires ("ARRAY" or "MAP") type, however, "ApprovalJSON"
is of "STRING" type.;


正确答案


首先将类似 json 的字符串解析为结构数组,然后使用 inline 将数组分解为行和列

df1 = df.withcolumn("approvaljson", f.from_json("approvaljson", schema="array>"))
df1 = df1.select("id", f.inline('approvaljson'))

结果

df1.show()

+---+----------------+--------+
| ID|    ApproverType|  Status|
+---+----------------+--------+
|  1|1st Line Manager|Approved|
|  1|2nd Line Manager|Approved|
|  2|1st Line Manager|Approved|
|  2|2nd Line Manager|Rejected|
+---+----------------+--------+

以上就是无法分解 Spark 数据框中的嵌套 JSON的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 无法分解 Spark 数据框中的嵌套 JSON

本文链接: https://lsjlt.com/news/563441.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作