在Talend Open Studio中的tFileInputDelimited组件中使用tab作为分隔符

时间:2017-06-14 09:43:05

标签: string split talend talend-mdm

我在Talend Open Studio中编写了一个ETL,用于在数据库中加载CSV / TSV文件。为此,我想使用文本文件中的动态上下文加载在tFileInputDelimited组件中提供分隔符。我已在上下文文件中将其指定为 fieldDelimiter =" \ t" ,并在screenshot中显示的tFileInputDelimited组件中。但是,它不能作为分隔符。我还尝试使用 fieldDelimiter =" \\ t" fieldDelimiter =" \ u0009" (标签的unicode字符)。

我应该在上下文文件中提供什么,以便分隔符是制表符而不是" \ t"在这种情况下发生的字符串?

4 个答案:

答案 0 :(得分:1)

我注意到上下文变量名称有所不同。在屏幕截图中,您提到了(String)context.get("fileDelimiter")。但是在你说的文字中,我已经在上下文文件中将其指定为fieldDelimiter="\t""。

只需在.properties文件中保持如下上下文

即可
fieldDelimiter=\t

还使用context.fieldDelimiter代替(String)context.get(" fileDelimiter")。

答案 1 :(得分:1)

在上下文文件中,只需输入fileDelimiter = \ t (没有引号) 然后在字段分隔符中访问变量。 Talend会自动将其作为字符串处理。 希望这有效。

答案 2 :(得分:0)

我知道没有函数(String)context.get("key")。如果已在上下文中将分隔符设置为String元素,则只需直接访问它。现在我将假设一个空字符串设置为字段分隔符。

因此,如果您的字段被调用fileDelimiter,只需将context.fileDelimiter放入字段分隔符

答案 3 :(得分:0)

正如其他人所指出的那样,你应该使用context.ParamName语法,这个方法的好处是在编译时进行语法检查,这样可以消除变量名中拼写错误的风险。 必须在作业(上下文选项卡)中声明此参数,以便Talend识别它。您可以将其创建为内置函数,也可以将其导入存储库中。