Amazon Athena选择整个JSON行

时间:2017-08-22 05:57:51

标签: hive presto amazon-athena

在亚马逊雅典娜,

我在一行中有一个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 }

由于

2 个答案:

答案 0 :(得分:0)

在hive中有功能 concat(sting,string,...)可以使用,但我怀疑Athena支持UDF。

示例代码

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

评论后更新

如果您必须在基表顶部创建表格表格限制列创建视图。

答案 1 :(得分:0)

如果您的专栏是JSON,则可以,然后您可以在Athena中将其解压缩为:

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