Talend中的透视数据

Talend中的透视数据,talend,Talend,我有一些数据需要在Talend中进行透视。这是一个示例: brandname,metric,value A,xyz,2 B,xyz,2 A,abc,3 C,def,1 C,ghi,6 A,ghi,1 现在我需要这些数据以公制列为轴心,如下所示: brandname,abc,def,ghi,xyz A,3,null,1,2 B,null,null,null,2 C,null,1,6,null 目前,我正在使用tPivotToColumnsDelimited将数据透视到一个文件并从该文件读回。然

我有一些数据需要在Talend中进行透视。这是一个示例:

brandname,metric,value
A,xyz,2
B,xyz,2
A,abc,3
C,def,1
C,ghi,6
A,ghi,1
现在我需要这些数据以公制列为轴心,如下所示:

brandname,abc,def,ghi,xyz
A,3,null,1,2
B,null,null,null,2
C,null,1,6,null
目前,我正在使用tPivotToColumnsDelimited将数据透视到一个文件并从该文件读回。然而,必须将数据存储在一个外部文件上并进行读回是一种混乱和不必要的开销

有没有一种方法可以在不写入外部文件的情况下使用Talend执行此操作?我尝试使用tDenormalize,但据我所知,它将以1列的形式返回行,这不是我所需要的。我还在TalendExchange中查找了一些第三方组件,但没有找到任何有用的东西


谢谢您的帮助。

假设您的度量是固定的,您可以将它们的名称用作输出列。执行透视的解决方案有两部分:第一部分是
tMap
,它将输入行
in
的值转换到输出行
out
的相应列中;第二部分是
tAggregate
,它根据品牌名称对地图的输出行进行分组

对于tMap,您必须有条件地像这样填充列,例如名为“abc”的输出列:
out.abc=“abc”.equals(in.metric)?in.value:null


tAggregate
中,您必须按
out.brandname
进行分组,并将每一列聚合为总和,忽略空值。

假设您的度量是固定的,您可以使用它们的名称作为输出列。执行透视的解决方案有两部分:第一部分是
tMap
,它将输入行
in
的值转换到输出行
out
的相应列中;第二部分是
tAggregate
,它根据品牌名称对地图的输出行进行分组

对于tMap,您必须有条件地像这样填充列,例如名为“abc”的输出列:
out.abc=“abc”.equals(in.metric)?in.value:null


tAggregate
中,您必须按
out.brandname
进行分组,并将每个列聚合为总和,忽略空值。

没错,但这不是轴的定义吗?将行转换为列,并相应地分配与这些行关联的值。没错,但这不是轴的定义吗?将行转换为列,并相应地指定与这些行关联的值。