【问题标题】:What to get the data From a column based on the JSON Tag Stored in the Column从基于列中存储的 JSON 标记的列中获取数据的内容
【发布时间】:2018-08-07 20:46:58
【问题描述】:

我有一个 Hive 表,它将数据作为 JSON 文件名存储在一个列中,并将完整 JSON 存储在另一列中。

假设 col1 有 data.json 并且 col 2 中有 JSON { "ID": "1", "Name": "ABC", "Dept":"market" }

我想构建一个查询,我可以在其中根据 ID 从 JSON 中获取名称,考虑下面作为我想要的查询的示例

select (SHOULD GIVE JSON TAG **NAME**) from temp where col1=data.json and col2 (JSON ID is 1)

对于存储在 Col2 中的上述 JSON,它应该返回 ABC

【问题讨论】:

  • 是 hive 还是 oracle?不要添加不相关的标签。
  • @Kaushik Nayak 已将其删除,但 Hive 和 Oracle 中的查询几乎相同。如果你可以在 Oracle 中提出一些建议。它也可以用于 Hive。

标签: sql hive hiveql


【解决方案1】:

在 Hive 中,您可以使用 get_json_object 函数。

SELECT get_json_object(col2, '$.Name') AS Name
FROM TEMP
WHERE col1 = 'data.json'
    AND get_json_object(col2, '$.ID') = 1;

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 2022-01-02
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2022-01-21
    • 2018-06-01
    相关资源
    最近更新 更多