DataPipeline:仅使用管道中CSV的前4个值

时间:2016-05-10 12:39:57

标签: csv amazon-web-services amazon-data-pipeline

我有一个CSV,它有一个可变的结构,我只想从前4个值。存储在S3中的CSV中有7到8个字段,我想只取第4个字段。我试图使用以下准备好的语句:

INSERT INTO locations (timestamp, item_id, latitude, longitude) VALUES (?, ?, ?, ?);

但是我得到了:

Parameter index out of range (5 > number of parameters, which is 4).

我认为这意味着它正在尝试加载CSV中的其他变量。是否可以采用前4个值?或以其他方式处理可变长度的CSV?

1 个答案:

答案 0 :(得分:1)

使用transformSql选项。你没有提到你要加载的内容,来自redshift docs:

  

用于转换输入数据的SQL SELECT表达式。当你   从DynamoDB或Amazon S3复制数据,AWS Data Pipeline创建一个   表调用staging并最初将其加载到那里。来自此的数据   table用于更新目标表。如果是transformSql选项   如果指定,则从指定的SQL创建第二个临时表   声明。然后更新来自第二个临时表的数据   最终的目标表。必须在名为的表上运行transformSql   staging和transformSql的输出模式必须匹配final   目标表的架构。