【问题标题】:Reading and splitting a CSV File with Talend使用 Talend 读取和拆分 CSV 文件
【发布时间】:2015-11-04 11:31:48
【问题描述】:

csv 文件包含多个表,可能如下所示:

 "Table 1"
 ,
 "id","visits","downloads","emailsent"
  1, 4324, 23, 2
  2, 664, 42, 1
  3, 73, 44, 0
  4, 914, 8, 0
  ...

 "Table 2"
 ,
 "id_of_2nd_tab","visits_of_2nd_tab","downloads_of_2nd_tab"
  1, 524, 3
  2, 564, 52
  3, 63, 84
  4, 814, 8
  ...

将这些表导入 Talend 的最佳方法是什么?

【问题讨论】:

    标签: csv talend


    【解决方案1】:

    一般来说,这种多记录格式的CSV格式解析起来比较复杂。

    问题:表的数量是否有限? 问题:每个表的列数和顺序是否固定? 问题:CSV 中“表格”之间的分隔符是什么?

    我认为您需要采用多通道方法。你可以这样做。

    通过 #1 - 使用 tFileInputDelimited 使用“表格”等行分隔符,无字段分隔符,抓取 1 个大字段 或者,您可以在此阶段将第一个文件拆分为单独的文件。

    通过 #2 - 在行分隔符“\r\n”等上拆分行(根据通过 #1 的结果) 将其拆分为多行但只有一列。

    第 3 步 - 提取分隔字段(根据第 2 步的结果) 基于字段分隔符提取 识别“表格”行 识别“标题行 每个表/表头中的字段集的附加处理

    【讨论】:

    • 是的,表的数量是有限的。但是行数不是固定的。分隔符是两个换行符
    • 然后,第一步是读取文件(在 Talend 架构中定义为 1 列)并使用两个换行符作为分隔符。这将为您提供两“行”数据。现在,每一行代表一个单独的表格。接下来你会做什么?
    【解决方案2】:

    使用 tFileInputExcel 组件读取每个工作表。然后,您可以使用 tMap 将工作表连接到目标列布局中,假设您想对一组连接的列进行一些处理。

    【讨论】:

    • 我想拆分 CSV 文件,而不是 Excel 文件
    • 对于 csv 使用 tFileInputDelimited 组件。
    • 是的,我知道,但是如果 csv 文件有多个表,如何拆分它?
    猜你喜欢
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2013-03-12
    相关资源
    最近更新 更多