このジョブでは、tUnpivotRowコンポーネントとtMapコンポーネントを使って、カラムを行に変換します。
このジョブは、次のコンポーネントを使用します。
- in.txtファイルからデータを読み取るtFileInputDelimitedコンポーネント、
- personテーブルのカラムを行に変換するtUnpivotRowコンポーネント、
- 出力テーブルを生成するtMap、
- コンソールに出力データを出力するtLogRowコンポーネント。
手順
-
3つの[main] (メイン)行でリンクされているtFileInputdelimitedコンポーネント、tUnpivotRowコンポーネント、tLogRowコンポーネントで構成されたUnPivotColumnsToRowsという名前のジョブを作成します。
-
tFileInputDelimitedをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
-
[File name/Stream] (ファイル名/ストリーム)フィールドに、作成した.txtファイルのパス(たとえば、"D:/file/in.txt")を入力します。
-
[Header] (ヘッダー)フィールドを1に変更します。
-
省略記号ボタン(...)をクリックしてコンポーネントのスキーマを編集します。
-
pivot_keyとpivot_valueというカラムを削除します。
-
Integer型であるIdという名前のカラムとString型であるName、Sex、Surgreyという3つのカラムを追加します。
-
tUnpivotRowをダブルクリックして、[Row keys] (行キー)ボックスにIdという名前の入力カラムを追加します。
-
以下のようにtUnpivotRowスキーマを編集して、Integer型のIdと名付けられた出力カラムを追加します。
注: Pivot_keyとPivot_valueという出力カラムの両方は、事前定義されたカラムで、tUnpivotRowコンポーネントで読み取り専用です。
-
tMapコンポーネントをダブルクリックし、そのスキーマを開いて、id、pivot_key、pivot_valueというカラムをRow2テーブルからout1テーブルにドラッグします。
-
out1テーブルのpivot_keyとpivot_valueの名前をそれぞれQuestionとAnswerに変更します。
注: 両方のカラム(Pivot_keyとPivot_value)がtUnpivotRowコンポーネントで読み取り専用であるため、tMapでのカラム名を変更して、ターゲットスキーマにマッピングする必要があります。