2017-03-29 7 views
1

テーブルのヘッダー行の上にテキスト行(および空白行)がある場合、Excelファイルがいくつかあります。Talendを使ってDIを開いて、一番最初の行から抽出値を抽出してから、列を処理します。

ファイルを処理してその行からテキストを抽出し、複数のファイルを追加するときに列として含めることができるようにするにはどうすればよいでしょうか?各ファイルを2回処理する必要はありませんか?

This file was created on machine A on 01/02/2013 

Task|Quantity|ErrorRate 

0102|4550|6 per minute 
0103|4004|5 per minute 

、複数の類似したファイルからデータ

Task|Quantity|ErrorRate|Machine|Date 
0102|4550|6 per minute|machine A|01/02/2013 
0103|4004|5 per minute|machine A|01/02/2013 
0467|1264|2 per minute|machine D|02/02/2013 

答えて

1

で終わる私は一緒にそれを行うことができるかの小さな、粗製のサンプルを入れました。私はそれを原油と呼んでいます。動的ではないため、処理するファイルを追加することができますが、ジョブを構築する前にいくつのファイルを知る必要がありますか?それは基本的なコンセプトを示していますが、ニーズに合わせてより多くの作業が必要になります。たとえば、私のテストファイルでは、最初の行に "MachineA"または "MachineB"があります。マシン名と日付を取得するには、そのデータを解析する必要があります。

ただし、サンプルがどのように動作するかは次のとおりです。各Excelは2つの入力として設定されています。本体tFileInput_Excelは、それらが結合されtMapでライン4

で読み取りを開始するように構成されているヘッダのtFileInput_Excelが最初の行のみを読み取るように構成された出力スキーマに(参加していません)。これは、マシンAのExcelとマシンBで実行され、tMapsは最終出力のためにtUniteと組み合わされます。

ログの行に見られるように、データは結合され、ヘッダー情報が含まれています。

enter image description here

+0

エレガントなソリューション、同じファイルからの2つの入力を使用してのアイデアが頭に入ったことはありません。何か問題がありますか?1)入力の1つをブロックしているファイルロックについて2)ルックアップに時間内に処理されたヘッダーデータを持っていないtMapで2) – mobcdi

+0

ファイルに書き込んでいない限り私はあなたがファイルロックに関しては問題ないと信じています。私のサンプルは正常に動作しましたが、少数の行しか持たなかったので、本番環境で使用する行数に基づいてボリュームテストを試してみることをお勧めします。このアプローチの大きな欠点は、動的ではないことです。毎回一定数のファイルが入ってくるのですか? –

+0

また、私は過去にマシン名(あなたの場合)と日付のようなメタデータをファイル名に埋め込んでいます。それから、そこから取得することができ、2つの入力でファイルを読むことを心配する必要はありません。 –

関連する問題