我有一个CSV文件列表,我每个月都会收到ETL到数据库的数据。它在一个文件夹中。我的数据在许多列中也有;
。例如,在位置列中存在类似New York; USA
的值,我希望它出现在单个列中,而不是分成许多列。我如何指定分隔符?
答案 0 :(得分:2)
我认为你不能在字段内容中包含字段分隔符,或者你必须在""之间包含这些值。例如:
blabla;"New York; USA";blabla
其他解决方案,将字段分隔符更改为更具体(和未使用)的字符。
我担心没有更好的解决方案。
此致 TRF
答案 1 :(得分:1)
正如TRF所提到的,您不能将分隔符作为文件中非分隔文本的一部分。
我的解决方法如下:
1)使用tFileInputFullRow
(https://help.talend.com/display/TalendComponentsReferenceGuide54EN/tFileInputFullRow)
2)使用tReplace
将;
替换为其他字符,
对问题单元格说-
(在您的情况下,将"New York;USA"
替换为"New York-USA"
。您还可以使用tReplace
组件中的正则表达式选项使其成为通用规则
3)将该输出保存到另一个文件
4)现在使用;
作为分隔符
参考文献:
1)tReplace
:https://help.talend.com/display/TalendOpenStudioComponentsReferenceGuide521EN/18.16+tReplace
2)正则表达式:https://docs.oracle.com/javase/tutorial/essential/regex/