如何使用Talend解析非常规文件?

时间:2017-11-02 14:21:24

标签: parsing talend

我的文件形状如下:

enter image description here

如何使用Talend Open Studio解析这样的文件?

这是我试过的:

enter image description here

在tJavaRow中,输入是一行中的整个文件。我将其拆分并手动解析。但我无法弄清楚如何为文件中的每个OBJ创建输出行。

这是“正确”的做法吗?或者这种类型的文件是否有特定的组件?

1 个答案:

答案 0 :(得分:3)

  

但我无法弄清楚如何为文件中的每个OBJ创建输出行

您可以使用tJavaFlex组件执行此操作:

  1. 通过将原始内容连接到tFlowToIterate
  2. 将其放在globalMap中
  3. 使用您在步骤1中提供的内容,将您的拆分逻辑放入tJavaFlex的"开始代码" 部分
  4. 在tJavaFlex的"开始代码" 部分开始循环(例如,针对每个对象)
  5. 在tJavaFlex中定义输出架构
  6. 在tJavaFlex的"主要代码" 部分,将已解析的对象映射到输出行的列
  7. 别忘了在tJavaFlex的"结束代码" 部分关闭你的循环
  8. 我列出了一个简单的例子,没有解析逻辑。但既然你已经把它弄下来了,我认为它应该足够了: demo flow

    启动代码

    String[] lines = ((String)globalMap.get("row1.content")).split("\r\n");
    for(String line : lines) { // starts the "generating" loop
    

    主要代码

        row2.key = line; // uses the "generating" loop
    

    结束代码

    } // closes the "generating" loop