尽管有“ESCAPE ACCEPTINVCHARS”,但在 S3 中为 CSV 上传错误

Posted

技术标签:

【中文标题】尽管有“ESCAPE ACCEPTINVCHARS”,但在 S3 中为 CSV 上传错误【英文标题】:Upload error in S3 for CSV, despite having "ESCAPE ACCEPTINVCHARS" 【发布时间】:2015-02-18 19:26:03 【问题描述】:

这似乎是常见解决方案的常见问题:通过 S3 上传 CSV 并收到 Missing newline: Unexpected character 错误?只需在您的 COPY 语句中添加 ESCAPE ACCEPTINVCHARS

所以我这样做了,但仍然得到错误。

我的 CSV 如下所示:

email, step1_timestamp, step2_timestamp, step3_timestamp, step4_timestamp, url, type
fake@email.gov, 2015-01-28 12:1I:05, 2015-01-28 12:1I:05, NULL, NULL, notasite.gov, M Final
wrong@email.net, 2015-01-28 12:7I:19, NULL, NULL, NULL, notasite.gov/landing, M

我在 S3 中成功上传并运行以下 COPY

COPY <my_table> FROM 's3://<my_bucket>/<my_folder>/uploadaws.csv'
CREDENTIALS 'aws_access_key_id=<my_id>;aws_secret_access_key=<'
REGION 'us-west-1'
DELIMITER ','
null as '\00'
IGNOREHEADER 1
ESCAPE ACCEPTINVCHARS;

我的错误代码:

Missing newline: Unexpected character 0x6e found at location 4194303

错误的第一个字符:

:05,,,,,M 决赛 xxxx@yyyyy.com,2015-01-28 12:1I:05,,,,,M 决赛 xxx.xxx@yyyy.com,2015-01-28 12:1I:05,,,,,M 决赛 xxxx

【问题讨论】:

作为附加信息(噪音?)。每次我尝试阅读错误时,我都会得到一个不同的意外字符(例如 0x6e、0x30、0x67 等)和不同的位置(例如 4194303、6508、9580)。但它总是在第 2 行。 【参考方案1】:

您的文件可能只需要在最后一行末尾换行。

ACCEPTINVCHARS 对于包含无效 UTF8 代码点或控制字符的文件没有帮助。

ESCAPE 用于在带有引用数据的文件中加载嵌入的引号。您的文件必须为此专门准备。

【讨论】:

以上是关于尽管有“ESCAPE ACCEPTINVCHARS”,但在 S3 中为 CSV 上传错误的主要内容,如果未能解决你的问题,请参考以下文章

okHttp NetworkOnMainThreadException 尽管有新线程

尽管有登录凭据,Sonarqube 项目细节仍被披露

错误1064-尽管在线语法检查器说代码是正确的,但您的SQL语法在行中有错误……尽管如此

尽管有 .permitAll() 却触发了未经授权的请求

CSS:尽管旁边有浮动元素,如何使文本居中?

尽管有权限,但 mongod 权限被拒绝