【问题标题】:How can I use an additional condition by getting data from xls-file input in Pentaho spoon?如何通过从 Pentaho 勺子中的 xls 文件输入获取数据来使用附加条件?
【发布时间】:2016-09-19 19:22:35
【问题描述】:

我刚刚开始学习 pentaho 勺子步骤,并且在解决一个问题时遇到了一个问题。我需要从 xls 文件转换数据并将其转换为数据库。问题是我的输入文件是这样的:table-description

我找不到如何解决两个问题:

  1. 下一步,我不仅需要保存表格本身(范围 A8:D11),还需要保存日期(单元格 A5)。当我尝试在 pentaho 中使用 Microsoft Excel Input – Step 执行此操作时,它仅在我选择 A8 单元格作为起始行时才有效,但未保存日期。

  2. 在 Microsoft Excel 输入 - 步骤中,我必须始终选择起始行才能生成表格并在后续步骤中使用它。而且我必须手动完成,我的意思是说我的表格从 A8 单元开始。在我的情况下,我不能总是确定表格从 A8 单元开始。我知道,起始单元格就是那个单元格,它在 A 列中并且值 =“日期”。 Microsoft Excel 输入 - 步骤将是我水壶的第一步,因为我必须获取数据并更改它们。这就是为什么我认为我不能在 Java Script 之前使用。

我还没有找到解决这两个问题的方法,不知道是否可以解决。我将不胜感激任何帮助。

【问题讨论】:

    标签: pentaho etl pentaho-spoon


    【解决方案1】:

    我不确定将 excel 文件转换为数据库是什么意思,但如果您可以将 xls 转换为 csv 并读取该文件,那么您就知道需要从哪一行过滤数据。基本上,您可以使用一个简单的过滤步骤来过滤与列名匹配的数据。我希望这将有所帮助。

    【讨论】:

      【解决方案2】:
      1. 使用两个 Microsoft Excel 输入步骤。一步读取表格 (A8:D11)。另一个步骤读取日期 (A5)。然后合并两个流,例如使用 Join Rows(笛卡尔积)步骤

      2. 阅读所有内容。然后使用带有两个脚本选项卡的 Javascript 步骤。对于其中一个选项卡:右键单击并选择设置启动脚本。代码:var start = 0; 另一个选项卡应保留为转换脚本。伪代码:if(FieldA equals "Date") {start = 1;}。现在,您将在流中有一个名为start 的附加字段。如果 start 等于 0,那么您知道您的表格数据还没有开始,您可以过滤掉该行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-14
        • 2020-05-15
        • 2017-05-13
        • 1970-01-01
        相关资源
        最近更新 更多