2017-01-31 10 views
0

Pentaho(V7)でCSV入力ユーティリティを使用する場合、以下の両方を達成するためにtrimタイプを使用します。しかし、期待どおりに動作しません。ここでPentaho - CSV入力 - 着信フィールドトリムタイプ - 予期しない動作

は、テストデータと実際の出力VS期待出力

|Incoming Data      |Expected Output  |Actual Output   | 
|<space>abc<space>     |abc     |abc     | 
|abc<space>       |abc     |abc     | 
|<space>abc       |abc     |abc     | 
|"<space>abc<space>"    |<space>abc<space>  |abc     | 
|"<space>abc<space>"<space>   |<space>abc<space>  |abc     | 
|<space>"<space>abc<space>"   |<space>abc<space>  |"<space>abc   | 
|<space>"<space>abc<space>"<space> |<space>abc<space>  |"<space>abc   | 
|"abc"<space>      |abc     |abc     | 
|<space>"abc"      |abc     |"abc     | 
|<space>"abc"<space>    |abc     |"abc     | 

は、誰かがこの上で私を導いてくださいできますか。

答えて

1

CSV入力が正しく作成されたCSVデータを正しく処理していないようです(驚きです)。デリミタとエンクロージャーの文字の間に余分なスペースがあると、明らかに段差にうまく収まりません。トリム機能は、エンクロージャの内部を見て、外側ではなくスペースをトリミングします。

私は、テキストファイル入力ステップをテストしました。これは、marabuが言うように、CSVファイルのデフォルトの選択肢であるはずです。残念ながら、それは質問と同じ望ましくない結果を与えます。

解決策は、CSV入力ステップのエンクロージャ定義ボックスから二重引用符(赤丸で囲んだもの)を削除することです。ステップでは、引用符で囲まれているかどうかにかかわらず、文字列の外側のスペースを正しく整えることになります。あなたはその後、「何もすることによって(赤下線)を置き換えるために、「置き換え文字列で」ステップを介してデータを置く。

Sample transformation with settings CSV-入力を使用するための技術的な理由はありません場合は

+1

引用符の置換は、引用符が埋め込まれています。 – marabu

2

を、使用してテキストファイルを、入力。。代わりに、TFIは、可能な場合は、あなたがが、データ品質に関するCSVプロデューサーに話すべきはるかに優れたCSV入力を処理

UPDATE:TFI 6.1.0.1-196プレビュー出力

enter image description here

N私たちがケトルでトリミングすることは常にフィールド値に行われます。つまり、テストケース4と5では、先頭と末尾のスペースがトリミングされるのを防ぐことができません。