File Talend:合并具有动态列的CSV文件

File Talend:合并具有动态列的CSV文件,file,talend,File,Talend,我想合并两个CSV文件。我面临的问题是两个CSV文件中有一个有动态列 e、 g 第一个CSV文件有两列。A和G。G列有逗号分隔的值 A | G |<-Column Names --|---------| A1| G1,G2,G3| <-Row A2| G2,G5,G6|<-Row A | G |因为A列是静态的,所以仍然可以使用tMap来执行此操作 一个简单的作业可能如下所示: 首先,将第二个CSV的模式设置为有两列:A(字符串类型)和RemainingCols

我想合并两个CSV文件。我面临的问题是两个CSV文件中有一个有动态列

e、 g

第一个CSV文件有两列。A和G。G列有逗号分隔的值

A | G       |<-Column Names
--|---------|
A1| G1,G2,G3| <-Row
A2| G2,G5,G6|<-Row

A | G |因为A列是静态的,所以仍然可以使用tMap来执行此操作

一个简单的作业可能如下所示:

首先,将第二个CSV的模式设置为有两列:A(字符串类型)和RemainingCols(动态类型)

您的第一个CSV应具有如下模式:

然后,只需像往常一样使用tMap连接两个数据源:


如果您使用的是Talend Open Studio,那么以下解决方案可能会很好:

  • 使用tFileInputFullRow组件读取文件
  • 使用tJavaRow将inputrows拆分为2列:A1/Rest
  • 将这一行运行到tMap中,进行连接
  • 使用tJavaRow为输出创建行

我这样做了。但它只获取了G列。我添加了一些示例屏幕截图。这有帮助吗?如果没有,你能通过编辑你的问题向我们展示你做了什么吗?谢谢你的输入。我已经添加了截图。我也在做同样的事情。你的输出是什么样子的?我假设CSV1有不同的分隔符?显然,如果您想将所有G保留为分隔值列,那么分隔符在G中需要不同于G和a之间的分隔符。两个csv中的分隔符都不同。uid列是CSV2中的第6列。你认为这可能是问题所在吗?我只从CSV1获取列(A和G)。输出文件中缺少CSv2中的动态列。
A | C1    |C2       |Othercolumns|<-Column Names
--|-------|---------|------------|
A1|C1Value|C2Value  |            |<-Row
A2|C1Value| C2Value |            |<-Row
A |G          | C1    |C2       |Othercolumns|<-Column Names
--|-----------|-------|---------|------------|
A1| G1,G2,G3  |C1Value|C2Value  |            |<-Row
A2| G2,G5,G6  |C1Value| C2Value |            |<-Row