映画データと監督データを結合するようにtMapコンポーネントを設定します。
映画データと監督データがジョブにロードされたら、両方を結合して目的の出力を生成するようにtMapコンポーネントを設定する必要があります。
手順
-
tMapをダブルクリックし、[Map Editor] (マップエディター)ビューを開きます。
-
movieIDカラム、titleカラム、releaseYearカラム、およびurlカラムを、左側からそれぞれの出力フローテーブルにドロップします。
[Map Editor] (マップエディター)の入力側(左側)にある2つのテーブルは、それぞれ入力フローの1つを表します。上のテーブルはメインフロー、下のテーブルはルックアップフローです。
出力側(右側)にある2つのテーブルは、コンポーネントをドロップしてリンクでtMapをtFileOutputDelimitedとtFileOutputDelimitedにリンクした時に、out1およびrejectという名前を付けた出力フローを表します。
-
入力側で、directorIDカラムをメインフローテーブルから、ルックアップフローテーブルのID行のExpr.keyカラムにドロップします。
このようにして、メインフローとルックアップフローの間の結合キーが定義されます。
-
directorIDカラムをメインフローテーブルから出力側のrejectテーブルにドロップし、Nameカラムをルックアップフローテーブルからout1テーブルにドロップします。
前の2つの手順の設定では、入力データのカラムが出力データフローのカラムにどうマップされるかを説明しています。
エディターの下側にある[Schema editor] (スキーマエディター)ビューから、両側のスキーマが自動入力されていることが確認できます。
-
out1出力フローテーブルで
ボタンをクリックし、フィルター式の編集フィールドを表示します。
-
row1.directorId != null
と入力します。
これによりtPigMapは、directorIDフィールドがいずれも空でない映画レコードのみを出力できます。空のdirectorIDフィールドを持つレコードは除外されます。
-
reject出力フローテーブルで
ボタンをクリックし、設定パネルを開きます。
-
[Catch Output Reject] (出力リジェクトのキャッチ)行で[true] (真)を選択し、rejectフロー内に空のdirectorIDフィールドを持つレコードを出力します。
-
[Apply] (適用)に続いて[OK]をクリックしてこれらの変更を確認し、ポップアップ表示されるダイアログボックスで求められるプロパゲーションを承認します。