2011-07-18 3 views
4

私は、次のような問題に直面しています。
2)35個の列が含まれている場合と含まれていない可能性がある、私が管理していないさまざまなファイルがあります。さらに悪い場合は、順序が間違っている可能性があります。データ変換を管理しながら、2つのcsvファイルをspoon、pentahoの列でマージする方法はありますか? <br/> 1)私は35列とその適切なヘッダを持つCSVベースのファイルを持っている:私は2つの入力を持って</p> <p>:

2番目のcsvファイルの列と最初のcsvファイルの列を一致させる必要があります。 2番目のcsvファイルに35の列がすべて含まれていない場合は、適切な順序で作成する必要があります。

適切なcsvファイル(ヘッダーが最初のcsvヘッダーのように見える)を取得したら、そのヘッダーを参照するデータを管理するスクリプトに渡します。

既存のフィールド入力をスクリプト内で取得する可能性がありますが、フィールドは固定されているように見えるため、2番目のcsvファイルの既存の列ヘッダーを参照しているようです。したがって、存在しない列にアクセスしようとすると、例外が発生します...

ご協力いただければ幸いです!

+2

問題をフォローアップするだけです。私はそれをあきらめた。私はローカルデータベースを使ってケトルの問題を解決しました。しかし、私の問題を本当に解決したのは、ケトルの外にあるCSVファイルを扱うために開発した小さな瓶でした。私の友人はまだケトル=/ – wleao

+3

だけを使用しなければならないので、それについての解決策を探しています。これはPDIでは非常に困難です。あなたは、おそらくあなたが望むことをするメタデータの注入ステップを見てください。効果的には、ファイルを読み込み、構造体を処理した後、トランスフォームにそれを挿入してファイル自体を読み取る必要があります。 – Codek

答えて

0

This is an example data widening.

用語「オーダーのうち二csvファイルでフィールドは、」いくつかの意味

    時にCSVファイルが、時間は異なるフィールドの順序の
  1. 同じソース
  2. ポジションを持つことができますcsvファイルのフィールド(列番号)は、異なるソースによって提供されるファイルで異なります。

初めてのケースは本当に変です。同じソースが同じデータを提供する必要があります。これが真でない場合、意思決定のロジックは本当に複雑になります。

第2のケースがよりリアルに見えます。この場合、すべてのソースを35フィールド幅にすることができます。次に、フィールドを特定する必要があります。データ型、文字列操作、正規表現などを検出するためのケトルには、たくさんのツールがあります。

実際には、フィールドの自動検出が必要ですね。

しかし、実際のデータがないと、パターンを見るのが難しいです。このようなフィールド検出のロジックをデータベースレベルで実装しているので、ケトルでも可能です。

とにかくロジックが複雑な場合は、JavaStep、JavaScriptを使用してください。

関連する問題