我在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格式:成员不是对象。
答案 0 :(得分:1)
Redshift复制错误意味着它没有在数据文件中的“message”对象中看到“a”键。
json数据中“message”对象值周围的引号导致了您的问题。你的json应该是这样的:
{ "message": {"a":"b","c":"d"}}
不需要转义引号,所以我拿出了反斜杠。离开他们可能有用,但我没有测试它。