2016-11-16 95 views
-2

我有这种情况,2个文件。Pentaho运行包含列表文件

输入文件2个字段6行:

1|BANANA ON CAGES  
2|APPLE CHIPS  
3|SPORT CARS  
4|PLANES  
5|HOUSE  
6|BOTTLES 

列表文件2个字段4行

BANANA|FRUIT  
APPLE|FRUIT  
CAR|TRANSPORT  
PLANE|TRANSPORT 

我希望这样的结果:

输出文件3个字段6行

1|BANANA ON CAGES|FRUIT  
2|APPLE CHIPS|FRUIT  
3|SPORT CARS|TRANSPORT  
4|PLANES|TRANSPORT  
5|HOUSE  
6|BOTTLES 

我强制要求使用PDI。 加入文件(Cartesian Product)太慢。 输入文件大约有1,000,000行和大约300,000行的列表文件

+0

笛卡尔产品是解决方案或必须有一些连接条件。 – Nikhil

+0

好的,谢谢,在这里有什么办法来比较输入文件和连接输出,比如我的例子,得到相同数量的行吗?如果条件不匹配,则失去行 –

+0

您需要更多数据。数据中没有任何内容表明输入文件中的条目是水果还是传输。这种区别必须存在于数据的某处,以便计算机知道哪个是“CAR”!=“运动车”。 –

回答

0

您的列表文件需要动态还是内容合理静态?

如果是静态的,您可以尝试用RegEx替换字符串。喜欢的东西:

enter image description here

设置类别后你只需要过滤类别为从项目的描述!

不知道如何执行这么多的记录。到现在为止,只用了很少的记录。

编辑:我刚刚看到Join(笛卡尔)有REGEXP选项。也许它比CONTAINS更快(我认为你一直在使用它?)。这将是更好的建立。

祝你好运!