阅读Talend中的CSV文件列表;在现场

时间:2017-04-18 10:50:27

标签: csv talend

我有一个CSV文件列表,我每个月都会收到ETL到数据库的数据。它在一个文件夹中。我的数据在许多列中也有;。例如,在位置列中存在类似New York; USA的值,我希望它出现在单个列中,而不是分成许多列。我如何指定分隔符?

enter image description here

2 个答案:

答案 0 :(得分:2)

我认为你不能在字段内容中包含字段分隔符,或者你必须在""之间包含这些值。例如: blabla;"New York; USA";blabla
其他解决方案,将字段分隔符更改为更具体(和未使用)的字符。

我担心没有更好的解决方案。

此致 TRF

答案 1 :(得分:1)

正如TRF所提到的,您不能将分隔符作为文件中非分隔文本的一部分。

我的解决方法如下:

1)使用tFileInputFullRowhttps://help.talend.com/display/TalendComponentsReferenceGuide54EN/tFileInputFullRow

读取文件

2)使用tReplace;替换为其他字符,     对问题单元格说-(在您的情况下,将"New York;USA"替换为"New York-USA"。您还可以使用tReplace组件中的正则表达式选项使其成为通用规则

3)将该输出保存到另一个文件

4)现在使用;作为分隔符

来读取新文件

参考文献:

1)tReplacehttps://help.talend.com/display/TalendOpenStudioComponentsReferenceGuide521EN/18.16+tReplace

2)正则表达式:https://docs.oracle.com/javase/tutorial/essential/regex/