【问题标题】:AWS Redshift spectrum ERROR: syntax error at or near "json"AWS Redshift 频谱错误:“json”处或附近的语法错误
【发布时间】:2021-06-16 12:14:59
【问题描述】:

我想创建一个使用红移光谱的外部表,文件是stored in s3 as json file having a single object with values as an array of objects

我对外部表的查询

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/';

这很好用,但这对我没有帮助,因为文本查询不支持嵌套数据。

【问题讨论】:

    标签: json amazon-web-services amazon-redshift amazon-redshift-spectrum


    【解决方案1】:

    这对我有用,需要将 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

    【讨论】:

      猜你喜欢
      • 2017-02-20
      • 2017-07-15
      • 2010-12-24
      • 2016-07-10
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多