使用COPY命令将json数据从S3复制到redshift时出错

时间:2015-02-11 10:11:18

标签: amazon-redshift

我在S3中有以下json数据:

{ "message": "{\"a\":\"b\",\"c\":\"d\"}"}

和jsonpath:

{
    "jsonpaths": [
        "$.message.a"
    ]
}

我使用下面的copy命令来加载redshift表。

copy test.table1 from 's3://bucket1/test.gz' credentials 'aws_access_key_id=<>;aws_secret_access_key=<>' json 's3://bucket1/jsonpath.json' GZIP ;

但是失败了。

  

无效的JSONPath格式:成员不是对象。

1 个答案:

答案 0 :(得分:1)

Redshift复制错误意味着它没有在数据文件中的“message”对象中看到“a”键。

json数据中“message”对象值周围的引号导致了您的问题。你的json应该是这样的:

{ "message": {"a":"b","c":"d"}}

不需要转义引号,所以我拿出了反斜杠。离开他们可能有用,但我没有测试它。