2017-02-21 5 views
0

でさまざまなファイルから列をマージ(ファイルがローカルである)私は才能を使用して、フォルダ内のファイルの列のマージを達成しようとしています才能

例: - 。4つのファイルがフォルダ内にあります。 (「n」個のファイルもある可能性があります)

各ファイルには100の値を持つ1つの列があります。

したがって、マージ後、出力ファイルには、100個のレコードを含む4または 'n'個の列があります。

Talendコンポーネントを使用してこの方法でマージすることはできますか?

tmapで2つのファイルを試してみると、出力レコードは倍増します(最初のファイルのレコード* 2番目のファイルのレコード)。

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

ありがとうございました。

答えて

0

異なるファイルからデータを結合する方法を決定する必要があります。 各ファイルの行番号Nを他のファイルの行番号Nと一致させる必要がある場合は、各ファイルにシーケンスを設定し、結果を得るためにシーケンスに参加する必要があります。慎重に、あなたは完全に各ファイルのデータの順序に依存しています。

次にあなたがこの仕事を持つことができます、1から4までをTMAPで

tFileInputdelimited_1 --> tMap_1 --->{tMap_5 
tFileInputdelimited_2 --> tMap_2 --->{tMap_5 
tFileInputdelimited_3 --> tMap_3 --->{tMap_5 
tFileInputdelimited_4 --> tMap_4 --->{tMap_5 

入力を出力にコピーして、あなたの出力に「シーケンス」列(データ型の整数)を追加し、でそれを移入Numeric.sequence("IDENTIFIER1",1,1)。次に、出力には2つの列があります。データと固有のシーケンスです。 ソースごとに異なる識別子を使用するように注意してください。

次に、tMap_5で、異なるシーケンスに参加し、inputColumnを取得します。

+0

提案していただきありがとうございますが、これを使用すると、ファイル内の列の順序は維持されません。同じシーケンス番号を持つすべてのレコードをマージするtpivotToColumnsDelimitedを実行しました。今すぐ元のもののためにそれをマージする列の順序をシャッフルする方法を試してください。 –

関連する問題