Java中的Pentaho Kettle程序按列合并多个csv文件

时间:2015-02-17 06:33:47

标签: java csv kettle

我有两个csv文件employee.csv和loan.csv。

在employee.csv中我有四列,即empid(整数),name(字符串),age(整数),education(String)。

在loan.csv中我有三列,即贷款(Double),余额(Double),empid(整数)。

现在,我想通过empid column将这两个csv文件合并到一个csv文件中。所以在result.csv文件中,列应该是,

  • empid(整数),
  • 名称(字符串),
  • 年龄(整数),
  • 教育(字符串),
  • 贷款(双),
  • 平衡(双)。

此外,我必须通过在Java中使用kettle api程序来实现这一点。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要创建一个水壶转换,如下所示:

  1. 选择两个“CSV输入步骤”,一个用于employee.csv,另一个用于loan.csv
  2. 将输入跳转到“Stream Lookup”步骤并使用“emplid”
  3. 进行查找
  4. 最后一步:获取文本文件输出以生成csv文件输出。 enter image description here
  5. 我已将ktr代码放在here

    其次,如果您想使用Java执行此转换,我建议您阅读this博客。我已经解释了如何使用Java执行.ktr / .kjb文件。


    额外点:

    如果需要将csv文件的名称作为参数从Java代码传递,您可以通过添加以下代码来实现:

      trans.setParameterValue(parameterName, parameterValue);
    

    其中parameterName是一些变量名称 并且parameterValue是文件或位置的名称。

    我已经将文件名作为我共享的水壶代码中的参数。

    希望有所帮助:)