1

我在 Talend 论坛上试了试运气,那里没有运气,所以我也会在这里试试。

我的工作是读取一个大表,然后以 25000 行的增量将数据写入 .csv 文件。我注意到的是,在第一个 .csv 文件之后创建的所有 .csv 文件都将数据全部加载在一行中,而第一个 .csv 文件将数据加载到 25000 行中(如我所愿)。

是否需要在 tFileOutputDelimited 组件上设置一个设置,以允许所有后续 .csv 文件中的行像在第一个(和“好”).csv 文件中一样被加载?我认为这可能是由于“高级设置”选项卡上的“转义字符”值使用了什么,但不确定。

在 tFileOutputDelimited 组件的“基本设置”选项卡上,CSV 行分隔符值为 CRLF("\r\n"),字段分隔符为“,”。在组件的“高级设置”选项卡上,Escape char 值是“”,文本框值也是“””。

此外,这是在 Windows 7 环境中运行的。

不幸的是,我为 tFileOutputDelimited 组件的“高级设置”选项卡找到的文档缺少关于 CSV 选项的文档。

下面是遇到的一个例子。如下所列,第一个文件看起来不错,但随后的所有文件都不会在换行符处中断,最终将所有数据放在一行而不是单独的行上。

文件 #1

标题行 第 1 行 第 2 行 第 3 行 ... 第 25000 行

文件 #2...

标题 row1row2...row25000

文件 #3...

标题 row1row2...row25000

如果您需要更多详细信息,请告诉我,我会立即发送。先感谢您。

4

1 回答 1

3

弄清楚了。正如我在最初的帖子中提到的,CSV 行分隔符已设置为 CRLF("\r\n") 选项。我将其更改为 LF("\n") 并解决了问题。我查看了生成的 java 代码并注意到它没有将 CRLF("\r\n") 作为默认选项之一 - 只有 \n 和 \r 是。这为我指明了尝试 \n 选项的方向。

于 2013-06-24T11:22:14.527 回答