【发布时间】:2018-05-15 05:53:21
【问题描述】:
我有一个 JSON 列 j 喜欢:
{'a': 2, 'b': {'b1': 3, 'b2': 5}}
{'c': 3, 'a': 5}
{'d': 1, 'c': 7}
如何从 Presto 获取所有不同的(顶级)键名? IE。我有点像
select distinct foo(j)
返回
['a', 'b', 'c', 'd']
(请注意,在这种情况下,我不太关心嵌套键)
Presto documentation 没有任何明确符合要求的功能。唯一看起来很接近的是提到JSONPath 语法,但即使这似乎也不准确。以下至少一项应该返回 something 但对我来说在 Presto 中都失败了:
select json_extract(j, '$.*')
select json_extract(j, '$..*')
select json_extract(j, '$[*]')
select json_extract(j, '*')
select json_extract(j, '..*')
select json_extract(j, '$*.*')
此外,我怀疑这将返回来自j(即[2, 3, 5, 3, 5, 1, 7])的值,而不是键。
【问题讨论】: