amazon athena选择整个json行

wgeznvg7  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(433)

在亚马逊雅典娜,
我有一些数据文件,一行一个json格式

{ a: 1, b: 2 }
{ a: 2, b: 4 }
{ a: 3, b: 6 }

当只使用字段创建表时,是否可以输出整行数据 a ?

SELECT ??? FROM table1 WHERE a > 1;

输出

{ a: 2, b: 4 }
{ a: 3, b: 6 }

谢谢

cclgggtu

cclgggtu1#

hive中有concat函数(sting,string,…),可以使用,但我怀疑athena是否支持udfs。
样本代码

SELECT concat('{ a: ' , cast(a as string),', b:' ,cast(a as string), ' }' )FROM table1 WHERE a > 1;

评论后更新
如果必须在基表的顶部创建表窗体限制列,请创建视图。

sbtkgmzw

sbtkgmzw2#

如果你的专栏是 JSON 然后你可以把它提取出来 Athena 因此:

SELECT *
FROM my_table
WHERE cast(json_extract_scalar(column_name,
         '$.a') as integer) > 1;

相关问题