【问题标题】:Pentaho Kettle: Compare two inputs with a loop?Pentaho Kettle:用循环比较两个输入?
【发布时间】:2019-10-29 14:04:44
【问题描述】:

我有两个单独的字段(来自两个单独的 excel 文件输入)要在 Pentaho Kettle 中进行比较。第一个 excel 文件的字段名称为“位置”,第二个 excel 输入的字段名称为“方向”。这两个字段的数据类型均为“String”。

“位置”字段的条目是唯一的,而“方向”字段的条目不是唯一的。例如,它们可能多次包含字符串“New York”。

我想要做的是将“方向”字段的每个条目与“位置”字段的所有条目进行比较。由于位置字段用作查找表,我想知道位置条目中未列出哪些方向条目。

结果应该是一些未出现在位置查找表中的字符串(方向)。为了做到这一点,我需要两个循环(它们是嵌套的)来比较每个方向条目和每个位置条目。如何使用 Pentaho Kettle 实现这一目标?我已经用 Merge Rows (diff)- 和 Modified Java Script Value-Steps 尝试过,但没有成功。有关如何解决此问题的任何建议?

【问题讨论】:

    标签: javascript etl pentaho kettle pentaho-spoon


    【解决方案1】:

    Pentaho 使用流工作,通常不需要循环。

    在下图中,我构建了一个简单的转换,应该可以满足您的需求:

    1. 两个 Excel 输入应为您提供路线和位置,以及您需要的任何其他字段。
    2. 流查找将位置中的所有记录加载到内存中进行比较(将位置 Excel 输入配置为查找步骤),然后根据您配置的字段(方向和位置)从方向查找每一行。
    3. 您应该至少输入一个字段以从 Locations 查找中返回一个 id 或 Location 本身。
    4. 过滤行然后检查新字段(Location_id、位置、您拥有的)是否具有某些值。如果填写,则该位置存在,如果为空,则转到未找到以进行进一步处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      相关资源
      最近更新 更多