使用Talend中的特定分隔符导入CSV文件

时间:2013-01-09 06:51:19

标签: file csv talend delimited-text

我有一个CSV文件,它有不寻常的分隔符,我想用Talend解析。通常,当我们有一个带有“回车”字符的CSV作为rowdelimiter时,我使用“\ n”。当它是TAB分隔文件时,我使用“\ t”,等等。但是现在我有一个文件有一些不寻常的字符。维基百科告诉我它是所谓的“控制人物”。我的问题是如何在Talend的tFileDelimitedInput组件中提及这些字符(参见截图2)。我必须使用STX控制字符,而不是换行符(\ n),但是如何告诉Talend这是哪个字符?首先是“\ n”是什么符号?

文件示例:

https://dl.dropbox.com/u/1757832/talendSeparators1.jpg

Talend中的tFileDelimitedInput组件,我必须输入行分隔符和字段分隔符。

https://dl.dropbox.com/u/1757832/talendSeparators2.jpg

1 个答案:

答案 0 :(得分:2)

您是否尝试为该文件创建tFileDelimitedInput元数据?

这样做,您有更多选择(参见附图)。

enter image description here

编辑:

以下是UTF-8对应控制字符代码的列表:

SOH:标题开头:http://www.fileformat.info/info/unicode/char/0001/index.htm STX:文字开头:http://www.fileformat.info/info/unicode/char/0002/index.htm

您是否也尝试过使用这些utf-8代码?

编辑2使用解决方案:

这是一个包含STX字段分隔符

的文件

File content

我已经定义了一个简单的tFileInputDelimited模式,其中包含两列(键和值都是字符串)。

然后,我设置了:

  1. 行分隔符为"\n"
  2. 字段分隔符为new String("\u0002")
  3. 然后,我有正确的行为:

    .----+------.
    | tLogRow_1 |
    |=---+-----=|
    |key |value |
    |=---+-----=|
    |key1|value1|
    |key2|value2|
    '----+------'