今回使用するフロー
filegetでCSVとしてファイルを読み込んだ後、マッパーを使って空文字列のフィールドを数字の0が入ったフィールドにします。
マッパーでの処理
最初にnullconverterで空文字列nullに変えます。その次にnullconverterの出力と中身がnullのconstを入力としてifに繋がります。
ifでは入力が同じかどうかを判定していて、同じなら0、そうでないなら入力4の元のストリームを出力します。
※下図では比較のためストリームのフィールドに値が入っている「商品名」と空文字列の「0を入れるフィールド」で同じ処理をしています。
読み込むCSVの内容
お茶,,2リットル,300円
読み込んだ後のフィールド名は先頭から、商品名,0を入れるフィールド,量,金額
となっています。(上図右下のストリームタブを参照)
確認
ステップ実行で動かして、filegetで読み込んだ時の内容と、マッパーで処理を行った後の内容を確認します。
filegetで読み込んだときは2つ目のフィールドは空文字列になっています。
マッパーの実行後では2つ目のフィールドは空文字列になっています。
また、空文字列ではない1つ目のフィールドは「お茶」と入力されたままになっています。