【问题标题】:AWS Pipeline CSV to RDS parse errorAWS Pipeline CSV 到 RDS 解析错误
【发布时间】:2018-12-02 10:07:07
【问题描述】:

我正在使用 AWS 的数据管道将 S3 上的 CSV 文件导入我的 MySQL RDS 实例,但似乎遇到了 STR_TO_DATE 问题。我得到一个:

“解析错误:预期字段将被 endOfRecord 或 endOfField 终止,但为 endOfFile”

使用这个语句:

insert into introtest (pk,id,deld) values (?,?, str_to_date(?, %m/%d/%Y));

我也试过这些:

insert into introtest (pk,id,deld) values (?,?, str_to_date('?', %m/%d/%Y));
insert into introtest (pk,id,deld) values (?,?, str_to_date(?, '%m/%d/%Y'));
insert into introtest (pk,id,deld) values (?,?, str_to_date('?', '%m/%d/%Y'));

都出现同样的错误

CSV 数据 =

0,740453,12/01/2010

提前致谢!

【问题讨论】:

  • 我相信您需要引用您的日期格式字符串。并且您缺少其中一个的引号?在 str_to_date 函数中。
  • 我在日期掩码和问号周围尝试了 4 个不同的单引号。你说的是双引号吗?或者有没有我没有尝试过的重复引用?
  • 你是从 PHP 调用这个吗?另一种语言?显示您从中调用它的代码。例如,如果您使用 mysqli 参数化查询,那么 insert into introtest (pk,id,deld) values (?,?, str_to_date(?, '%m/%d/%Y')); 行应该是正确的。如果它在 PHP 代码中用双引号括起来。
  • 我不确定。我正在使用 AWS S3 到 MySQL RDS 管道模板。除了:docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/… 我在记事本中创建的虚拟文件有问题吗?我只是打开记事本输入 0,740453,12/01/2010 并将其保存为 .csv。将其上传到 S3 并运行管道。
  • 一个可能的问题是 csv 文件中的日期应该是一个字符串。尝试编辑您的数据文件并在日期前后加上引号。我上面的问题是要求您澄清您在问题中显示的命令。它似乎缺少了什么。您在哪里告诉 AWS csv 文件的名称?你在哪里告诉它什么“?”代表?完整的代码是什么?

标签: mysql amazon-web-services amazon-s3 amazon-data-pipeline str-to-date


【解决方案1】:

如果您仍然没有解决问题...

对于要使用 AWS 数据管道从 S3 加载到 RDS 的数据,csv 文件应该是 linux 文件,因此如果您在 Windows 中创建文件,则需要像在 Linux 中一样转换它或在 Linux 环境中创建文件并使用该文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2016-03-16
    相关资源
    最近更新 更多