首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组结构在presto、hive中查询

数组结构在presto、hive中查询
EN

Stack Overflow用户
提问于 2018-05-13 20:01:52
回答 1查看 6.2K关注 0票数 0

col-1有dep_id(varchar) -

代码语言:javascript
复制
112 

col-2具有数组结构

代码语言:javascript
复制
 [
  {
    "emp_id": 8291828,
    "name": "bruce",
  },
  {
    "emp_id": 8291823,
    "name": "Rolli",
  }
]

我有一个需要展平和显示结果的用例。例如,当查询dep_id -112时,我需要在单独的行中显示emp_id。对于上述数据,当查询时,我的结果应该如下所示

代码语言:javascript
复制
id  emp_id
112 8291828
112 8291823

获取数据的查询格式应该是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 09:20:31

要做到这一点,需要几个部分。首先,JSON数据将显示为VARCHAR,因此您首先需要对其运行json_parse,以便在引擎中将其转换为JSON类型。然后,您可以将JSON类型转换为普通的SQL结构类型,在本例中,这是一个由行组成的数组(see cast from JSON)。最后,对行数组(实际上是一个嵌套表)执行交叉联接。此查询填充将为您提供所需的结果

代码语言:javascript
复制
WITH your_table AS (
    SELECT
        112 AS dep_id
        , '[{"emp_id": 8291828, "name": "bruce"}, {"emp_id": 8291823, "name": "Rolli"}]' AS data
)
SELECT
    dep_id
    , r.emp_id
    , r.name
FROM your_table
CROSS JOIN
    UNNEST(cast(json_parse(data) as array(row (emp_id bigint, name varchar)))) nested_data(r)    
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50315902

复制
相关文章

相似问题

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