【发布时间】:2018-03-13 23:17:57
【问题描述】:
我正在查询hive 中的列。
此列包含json 有效负载,格式如下:
{"aaa":"xxx", "status":"yes", "bbb":"xyx", "ccc":"yxy", "status":"no", "status":"maybe", "ddd":"zyz"}
我正在尝试提取出现在有效负载不同点的所有状态值。 我正在使用以下内容:
select regexp_extract (payload,'(?<=status":")(.*?)"') as Status
然而,这只会返回第一次出现的状态,而下一次则全部丢失。每次重复状态后如何获取值?
谢谢
【问题讨论】:
-
尝试
regexp_extract_all以获得全球影响。 -
谢谢。我试过了,但它说 regexp_extract_all 不是一个公认的函数 - 也许 Hive 不使用它:(
-
你的预期输出是什么?
-
理想情况下,我可以将所有“状态”值提取为单独的单元格或一个长字符串,然后我可以将它们分开!所以像“是”“不”“也许”之类的东西