嗨,我是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-
我尝试使用行反规范器,但没有尝试。 有什么建议吗?
答案 0 :(得分:0)
通常,看看你做了什么以提供帮助是有帮助的,但我知道"帮助"是多么违反直觉。这一步是。
确保在将模型和类型的行发送到非规范化器步骤之前对其进行排序。然后尝试一下:
至于将输出拆分为文件,有几种方法可以处理。使用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的示例解决方案。此外,只有当模型中的每种类型具有相同数量的颜色时,它才有效。这只是一个如何使用勺子的暗示,它不是一个完整的解决方案。