AWS Redshift spectrum ERROR: syntax error at or near "json"
AWS Redshift spectrum ERROR: syntax error at or near "json"
我想使用红移光谱创建一个外部table,文件是stored in s3 as json file having a single object with values as an array of objects
。
我对外部的查询table
CREATE EXTERNAL TABLE jatinspectrum.extable (
enteries array<struct<title:varchar(4000),link:varchar(4000),author:varchar(4000),published_date:timestamp,category:array<varchar(4000)>>>
)
stored as json
LOCATION 's3://xxxxxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxx/';
它抛出一个错误ERROR: syntax error at or near "json" Position: 198
为了确保语法正确,我使用另一个查询将其保存为文本文件
CREATE EXTERNAL TABLE jatinspectrum.extab (
enteries array<struct<title:varchar(4000),link:varchar(4000),author:varchar(4000),published_date:timestamp,category:array<varchar(4000)>>>
)
stored as textfile
LOCATION 's3://xxxxxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxx/';
效果很好,但这对我没有帮助,因为文本查询不支持嵌套数据。
这对我有用,需要将此 stored as textfile
更改为此
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
stored as textfile
https://docs.aws.amazon.com/athena/latest/ug/parsing-JSON.html
我想使用红移光谱创建一个外部table,文件是stored in s3 as json file having a single object with values as an array of objects
。
我对外部的查询table
CREATE EXTERNAL TABLE jatinspectrum.extable (
enteries array<struct<title:varchar(4000),link:varchar(4000),author:varchar(4000),published_date:timestamp,category:array<varchar(4000)>>>
)
stored as json
LOCATION 's3://xxxxxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxx/';
它抛出一个错误ERROR: syntax error at or near "json" Position: 198
为了确保语法正确,我使用另一个查询将其保存为文本文件
CREATE EXTERNAL TABLE jatinspectrum.extab (
enteries array<struct<title:varchar(4000),link:varchar(4000),author:varchar(4000),published_date:timestamp,category:array<varchar(4000)>>>
)
stored as textfile
LOCATION 's3://xxxxxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxx/';
效果很好,但这对我没有帮助,因为文本查询不支持嵌套数据。
这对我有用,需要将此 stored as textfile
更改为此
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
stored as textfile
https://docs.aws.amazon.com/athena/latest/ug/parsing-JSON.html