Pentaho

时间:2016-10-19 10:32:19

标签: pentaho pentaho-spoon

嗨,我是Pentaho Spoon的新人,我有一个问题: 我有一张这样的桌子:

model |  type | color| q 
--1---| --1-- | blue | 1 
--1---| --2-- | blue | 2 
--1---| --1-- | red  | 1
--1---| --2-- | red  | 3
--2---| --1-- | blue | 4
--2---| --2-- | blue | 5 

我想为每个按类型分组的模型创建一个表(以csv或excel导出),其中group的值为header,值为q值:

表1.csv

type | blue | red
--1--| -1-- | -1- 
--2--| -2-- | -3- 

表2.csv

type |  blue 
--1--| -4- 
--2--| -5- 

我尝试使用行反规范器,但没有尝试。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

通常,看看你做了什么以提供帮助是有帮助的,但我知道"帮助"是多么违反直觉。这一步是。

确保在将模型和类型的行发送到非规范化器步骤之前对其进行排序。然后尝试一下:

enter image description here

至于将输出拆分为文件,有几种方法可以处理。使用Model字段查看Switch / Case步骤。

另外,如果您还没有找到它们,请查看PDI下载附带的示例文件。它们应该在...... pdi-ce-6.1.0.1-196 \ data-integration \ samples中。它们有时比在线文档更有用。

答案 1 :(得分:0)

如果颜色数量未知,则不能使用行反规范器,也不能动态定义文本输出字段。

没有使用java和js步骤,我可以看到几种方法。其中一个基于以下想法:我们可以准备两列的行:

Row              Model
type|blue|red    1
1|1|1            1
2|2|3            1
type|blue        2
1|4              2
2|5              2

然后我们可以使用Model字段为每一行准备文件名,然后使用文本输出轻松输出所有行,其中文件名取自filename字段。在这种情况下,所有记录都将导出为两个文件而无需额外的努力。

您可以在此处找到示例转换:copy-paste me into new transformation

请注意,这是一个仅适用于csv的示例解决方案。此外,只有当模型中的每种类型具有相同数量的颜色时,它才有效。这只是一个如何使用勺子的暗示,它不是一个完整的解决方案。