我想合并两个CSV文件。我面临的问题是两个CSV文件中的一个具有动态列。
e.g。
第一个CSV文件有两列。 A和G.列G有逗号分隔值。
A | G |<-Column Names
--|---------|
A1| G1,G2,G3| <-Row
A2| G2,G5,G6|<-Row
第二个CSV文件包含动态列。但它将有A列(uid)。 e.g。
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
我无法使用tmap,因为第二个文件有动态列。
请告诉我如何实现这一目标。
答案 0 :(得分:0)
由于您的A列是静态的,您仍然可以使用tMap来执行此操作。
一个简单的工作可能如下所示:
首先,将第二个CSV的架构设置为2列:A(字符串类型)和RemainingCols(动态类型)。
你的第一个CSV应该有这样的架构:
然后像往常一样用tMap加入你的两个数据源:
答案 1 :(得分:0)
如果您使用的是Talend Open Studio,那么以下解决方案可能会很好: