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;
在亚马逊雅典娜中,
我有一些数据文件,形式为一个 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;