Hive - 解析具有每个字段多行的 JSON 列的表

问题描述 投票:0回答:1

我有一个与此类似的表,其中我需要从 id 等于 2 的每个 json 字段中提取值。我已经尝试了多个示例,但无法设法了解如何操作 json_tuples / Lateral视图/爆炸进入我的场景。 非常感谢任何帮助!

value1,value2,value3,"[{""id"":1,""value"":""x""},{"id"":2,""value"":""y""}, {"id"":3,""value"":""blah""}]"
value4,value5,value6,"[{""id"":1,""value"":""a""},{"id"":2,""value"":""b""}, {"id"":3,""value"":""blahblah""}]"
col1 col2 col3 id2值
值1 值2 值3 y
值4 值5 值6 b

我尝试操纵的示例: 如何从 Hive 中的 json 字符串中提取选定的值 -不知道如何检查子行中的值

Hive Sql 查询从 Json 数组获取 Json 对象 -不知道如何将其与选择普通列结合起来

sql json hive
1个回答
0
投票

你的例子有点不清楚,所以我做了一些猜测和假设(value*字符串位于单独的列中,你的json字符串存储在数组列中,...并且你的json数组中的引号是这样的一团乱,这不是有效的 json。)

您可以在 json 数组(技术上是结构数组)上使用横向视图,然后您可以对其进行过滤。

select
col1,
col2,
col3,
exp.id,
exp.value
from
<your table>
lateral view inline(<array column>) exp as id,value
where
exp.id = 1
© www.soinside.com 2019 - 2024. All rights reserved.