Amazon Athena select 整个 JSON 行

Amazon Athena select entire JSON row

在亚马逊雅典娜中,

我有一些数据文件,形式为一个 JSON 一行

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

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

SELECT ??? FROM table1 WHERE a > 1;

输出

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

谢谢

hive 中有函数 concat( sting,string,...) 可以使用,但我怀疑 Athena 是否支持 UDF。

示例代码

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

评论后更新

如果您必须创建 table 表单有限列,请在基础 table 之上创建视图。

是的,如果您的列是 JSON,那么您可以将其提取到 Athena 中:

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