繁体   English   中英

如何在spoon,pentaho中按列合并2个csv文件,同时管理数据转换?

[英]How to merge 2 csv files by columns in spoon, pentaho, while managing data conversion?

我面临以下问题:

我有两个输入:
1) 我有一个 csv 基本文件,它有 35 列及其正确的标题。
2) 我有各种不由我控制的给定文件,它们可能包含也可能不包含 35 列,更糟糕的是,它们可能出现故障。

我必须将第二个 csv 文件中的列与第一个 csv 文件中的列匹配。 如果第二个 csv 文件没有全部 35 列,我应该按照正确的顺序创建它们。

一旦我有一个正确的 csv 文件(其中 header 看起来像第一个 csv 标题),我会将它传递给一个脚本,该脚本管理通过列标题引用它们的数据。

一种可能的解决方案是在脚本中获取现有的字段输入,但是,我无法做到这一点,因为这些字段似乎是固定的,引用了第二个 csv 文件的现有列标题。 因此,当我尝试访问不存在的列时,我最终会遇到异常......

任何帮助将不胜感激!

这是一个示例数据扩展。

术语“第二个 csv 中的字段乱序”可能有多种含义

  1. csv 文件来源相同,但字段顺序不时不同
  2. csv 文件中字段(列号)的 Position 在不同来源提供的文件中有所不同。

第一种情况真的很奇怪。 相同的来源应该提供相同的数据,如果这不是真的,那么做出决定的逻辑可能真的很复杂。

第二种情况看起来更真实。 在这种情况下,您可以将所有来源设为 35 个字段宽。 然后你需要识别字段。 在kettle中有很多工具可以检测数据类型、字符串操作、正则表达式等等。

实际上,听起来您需要自动检测字段。

但没有真实数据,很难看出规律。 由于您在数据库级别实现了这种现场检测逻辑,因此在水壶中也是可能的。

无论如何,如果逻辑真的很复杂,那么使用 JavaStep,JavaScript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM