2015-11-04 155 views
0

一个CSV文件CSV文件包含超过一张桌子,它可能是这样的:读和拆分使用Talend

"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的最佳方式?

回答

0

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

+0

我想分割CSV文件,而不是Excel文件 – justSaid

+0

对于CSV使用tFileInputDelimited组件。 – PatVictorio

+0

是的,我知道,但如何splitt csv文件,如果有多个表? – justSaid

1

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

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

我相信你需要采取多通道的方法。你可以做这样的事情。

通#1 - 使用tFileInputDelimited 使用行分隔符,如“表”,没有字段分隔符,抓斗1大场 或者,您也可以在此阶段驳头文件到单独的文件。

通过#2 - 行分隔符“\ r \ n”中的分隔行(在通过#1的结果上)等 将其拆分为多行,但分为单列。

通行证#3 - 提取分隔的字段(从通#2的结果)的基础上一个字段分隔符 识别一个“表格”行 识别一个“标题行 每表的其他处理/组中的报头字段的 提取物

+0

是的,有表的数量有限。但行数不固定,分隔符是两条新行 – justSaid

+0

然后,第一步读取文件(定义为Talend中的1列chema)并使用两条换行符作为分隔符。这会给你两行“数据”。现在,每一行代表一个单独的表格。 接下来你会做什么? – dbh