Hive 从 json 行中选择一个特定的字符串

Posted

技术标签:

【中文标题】Hive 从 json 行中选择一个特定的字符串【英文标题】:Hive select a particular string from a json row 【发布时间】:2017-08-10 05:06:05 【问题描述】:

我正在尝试分析 Athena 中的 AWS 云跟踪日志,为此,如果我选择安全组添加 入站规则事件,它会在 elements 列中返回以下字符串。 p>

"groupId":"sg-XXXX","ipPermissions":"items":["ipProtocol":"tcp","fromPort":22,"toPort":22,"groups":,"ipRanges":"items":["cidrIp":"0.0.0.0/0"],"prefixListIds":]

但是我需要 groupId 从那个 json 结果中单独获得。那么我怎样才能得到呢?

注意:表是外部表

【问题讨论】:

【参考方案1】:
select json_extract_scalar('"groupId":"sg-XXXX","ipPermissions":"items":["ipProtocol":"tcp","fromPort":22,"toPort":22,"groups":,"ipRanges":"items":["cidrIp":"0.0.0.0/0"],"prefixListIds":]','$.groupId');
OK
sg-XXXX

【讨论】:

感谢您的回答,在 AWS Athena get_json_object 未注册:( 请改用json_extract_scalar

以上是关于Hive 从 json 行中选择一个特定的字符串的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中检索特定行并显示特定行中的所有数据并使用 php 发送 json

从 Hive 数组中选择特定值

如何从特定小时范围内的行中选择最小值?

从 C# 中的 JSON 读取特定值

SQL / Hive 选择具有特定列值的第一行

从特定的核心数据表行中检索值 - 然后将值存储到 UserDefaults