映画データとディレクターデータを結合するようにtMapコンポーネントを設定します。
映画データと監督データがジョブにロードされたら、両方を結合して目的の出力を生成するようにtMapコンポーネントを設定する必要があります。
手順
-
tMapをダブルクリックし、[Map Editor] (マップエディター)ビューを開きます。
-
movieIDカラム、titleカラム、releaseYearカラム、およびurlカラムを、左側からそれぞれの出力フローテーブルにドロップします。
[Map Editor] (マップエディター)の入力側(左側)にある2つのテーブルは、それぞれ入力フローの1つを表します。上のテーブルはメインフロー、下のテーブルはルックアップフローです。
出力側(右側)にある2つのテーブルは、SparkコンポーネントをドロップしてリンクでtMapを2つのtFileOutputParquetにリンクした時に、out1およびrejectという名前を付けた出力フローを表します。
-
入力側で、directorIDカラムをメインフローテーブルから、ルックアップフローテーブルのID行のExpr.keyカラムにドロップします。このようにして、メインフローとルックアップフローの間の結合キーが定義されます。
-
directorIDカラムをメインフローテーブルから出力側のrejectテーブルにドロップし、Nameカラムをルックアップフローテーブルからout1テーブルにドロップします。
エディターの下側にある[Schema editor] (スキーマエディター)ビューから、両側のスキーマが自動入力されていることが確認できます。
-
ルックアップフローテーブルで
ボタンをクリックして、結合操作用の設定パネルを表示します。
-
[Join model] (結合モデル)行で[Value] (値)カラムをクリックし、表示された[...]ボタンをクリックします。
[Options] (オプション)ウィンドウが表示されます。
-
メインフローとルックアップフローの両方に存在する結合キーを含むレコードのみを出力するために、[Inner join] (内部結合)を選択します。
-
[Match Model] (一致モデル)行で、操作を繰り返して[All matches] (すべての一致)を選択します。
-
reject出力フローテーブルで
ボタンをクリックし、設定パネルを開きます。
-
[Catch Lookup inner join reject] (ルックアップ内部結合リジェクトのキャッチ)行で[true] (真)を選択し、入力側で行われた内部結合によってリジェクトされたレコードを出力します。
-
[Apply] (適用)に続いて[OK]をクリックしてこれらの変更を確認し、ポップアップ表示されるダイアログボックスで求められるプロパゲーションを承認します。
タスクの結果
これで、映画データにその監督名を添えて完成し、監督データを含まない映画レコードを別のデータフローに書き込むように、変換が設定されました。