はじめに
抽出あるんなら挿入もあるだろ!!ということで今回はコラム名を一括で入れ込みましょう。これを使えば、コラム名を総入れ替えすることが可能になります!
今回のテーマ ~Insert Column Header~
Column Renameを使わず、マッピングテーブルからコラム名を入れ替えていきましょう。
覚えてほしいこと
Lookup Columnに現コラムリスト
Value Columnに新コラムリスト
やりたいこと
社員表のコラム名を、英語名称に一括変換してみたいと思います。
コラム名のマッピングは、Table Creatorで作りましたね。
Insert Column Headerの使い方
下のInputから来る、コラム名のマッピングテーブルをもとにして、コラム名を一括差し替えすることができるNodeです。
Workflow
Workflowは下記からダウンロードできます。
Confirm - Before After
社員表のコラム名がマッピングテーブルに従って、新コラム名(英語名称)に差し変わっていることが分かります。
Configure
さて設定を見ていきましょう。
Step1 - Lookup Column / Value Column 現コラムと新コラムのマッピング
まずは、下のInputから入ってきたコラムマッピングを認識させます。
Lookup Columnに現コラムリスト
Value Columnに新コラムリスト
を設定してください。
Step2 - Fail if... コラムリストが足りなかった場合の設定
チェックを入れると、現コラムリストに上のInputからくるコラム名がすべて入っていなかった場合、実行失敗にすることができます。デフォルトではチェックが入っています。
チェックを外すと、現コラムリストにないコラムがあっても差し替えすることなくそのまま実行してくれます。
ちょっと一言
こんなときにOK、こんなときにNG
さて、コラムマッピング(現コラムリストと新コラムリストの対応表)を作るとき、どんなものだとOKでどんなものだとNGなのかを実験してみたいと思います。4種類やってみました。結果は下図のとおりです。
つまり、コラムマッピング(現コラムリストと新コラムリストの対応表)には、重複さえなければOKということですね!
多くてもOKです!少ない場合はStep2での設定が必要です。
コラムマッピングが足りなかったとき
さて、先ほど、一行少なくしたときは▲と書きました。これはStep2のチェックマークに依存するからです。一行少なくしたときで、Step2 Fail if...にチェックが入っている場合とそうでない場合の比較をしてみましょう。
一行少ない・Fail if...にチェック
チェックを入れると、一個足りないだけでエラーが発生します。
「No name assignment for column "入社日"」と書かれているので、入社日のマッピングが見つからなかったぞ!って言ってますね。
一行少ない・Fail if...にNOチェック
さて、チェックを入れないとどうなるのでしょうか。
実行は成功します。Confirmを見ると、マッピングが消えているところについては元コラムの名前が入っていることが分かります!
コラムマッピングが重複しているとき
重複がある場合は、下図のようなエラーが発生します。
「Multiple occurrences of lookup key "入社日"」とあるので、入社日って値が複数回検知されて一意じゃなかったんだけどどういうこと?って言われています。
おわりに
たまに使うコラム名一括変換Nodeでした!結構便利なのでぜひ皆さん使ってみてください!
※過去記事にも余談コーナーちょいちょい載せていきます。コロナの収穫ですかね笑
余談
入れ替わりといえば、おススメ映画は「天使のくれた時間」ですね!
若かりし時代に最愛の恋人を捨て、成功を収めた一流ビジネスマンとして超リッチピープルな人生を過ごしていたのですが、ある日のクリスマスの夜目が覚めると、ビジネスマンとしてではなくて、最愛の恋人と過ごす毎日に変わってしまいます。
極端に言えば、仕事100%な人生と、家庭100%な人生、どちらが大切なんでしょうか?と問いかけてくるような映画です。
私は今のところ仕事をしすぎてしまう派なので、バランスを考えさせられるおススメな映画です。
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):
Insert Column Header – KNIME Hub