S3 到 Redshift:未知的布尔格式
Posted
技术标签:
【中文标题】S3 到 Redshift:未知的布尔格式【英文标题】:S3 to Redshift: Unknown boolean format 【发布时间】:2017-02-15 23:29:27 【问题描述】:执行从 S3 到 Redshift 的复制命令,加载 JSON 文件。我在要插入的新表中有一些字段为 bool,但总是出现以下错误:“未知布尔格式”
我的 JSON 被很好地解析,已经运行了一百万次测试。我尝试将布尔字段传递为:
false // "false" // "False" // 0 // "0" // null
但是执行时总是报同样的错误:
select * from stl_load_errors;
err_code err_reason
1210 Unknown boolean format
我在我的声明中看到了一些关于使用 IGNOREHEADER 的 cmets,但这不是一个选项,因为我正在处理的文件是单行 json 格式。忽略头部基本上意味着根本不读取文件。我有其他表像这样工作并且工作正常,但这些表中没有任何 bool 列。
【问题讨论】:
你能分享一些示例 json 和我们的复制命令吗.. 【参考方案1】:COPY from JSON Format 文档页面提供了一个包含布尔值的示例:
"id": 0,
"guid": "84512477-fa49-456b-b407-581d0d851c3c",
"isActive": true,
"tags": [
"nisi",
"culpa",
"ad",
"amet",
"voluptate",
"reprehenderit",
"veniam"
],
"friends": [
"id": 0,
"name": "Carmella Gonzales"
,
"id": 1,
"name": "Renaldo"
]
Boolean 文档页面显示的值与您尝试过的类似。
【讨论】:
感谢您的回答。原来 jsonformat 文件有 2 个字段的顺序错误,并且混淆了 bool 和另一种数据类型 -_-以上是关于S3 到 Redshift:未知的布尔格式的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spectrify 以 Parquet 格式将数据从 Redshift 卸载到 S3
将数据从本地复制到 S3 到 Redshift 表时出现问题