データの値を列に挿入
1 行だけのデータを、もう一方のデータの全行に列として付けます。集計で出した合計や平均を、明細の全行に並べて比率を計算する、といった使い方をします。
固定の値を入れるだけなら値を列に挿入で足ります。
入出力
| ポート | 内容 |
|---|---|
| 左入力データ | データ |
| 右入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。
設定項目
- 挿入方向を選択
- 右のデータを左に挿入する(既定)か左のデータを右に挿入する。挿入する側(既定なら右のデータ)が 1 行でなければなりません。
1 行でなければならない
挿入する側のデータは、ちょうど 1 行である必要があります。 2 行以上あるとエラーになります。
集計の結果を使うことが多いので、データ集計でグループを指定せずに全体を集計すると 1 行になります。
受け取る側の行数に制限はありません。1 行のデータの各列が、受け取る側の全行に同じ値で付きます。
0 行のデータをつないだとき
0 行のデータはエラーになりません。 1 行の代わりに仮の値が使われるので、気づかないまま先へ進んでしまいます。前のノードの条件が厳しすぎて 0 行になっていないか、実行前に確かめてください。
| つないだもの | 結果 |
|---|---|
| 挿入する側が 0 行 | 受け取る側の全行に、仮の値が入った列が付く(数値の列は 1、文字列の列は 2020-08-29、日付の列は 2020-08-29) |
| 受け取る側が 0 行 | 出力が仮の 1 行になり、元からあった列にも仮の値が入る |
| 両方とも 0 行 | 列だけが増え、0 行のまま出る |
同じ名前の列があるとき
挿入する列の名前が受け取る側と重なると、末尾に番号が付きます(売上 → 売上_1)。元の列は上書きされません。
エラーと対処
挿入するデータが 1 行でない
挿入する側が 2 行以上のとき。
挿入するデータは1行である必要があります
直し方 — 挿入する側を 1 行にしてください。集計でグループを指定していると複数行になります。グループごとに値を付けたいなら、このノードではなくキー列を指定する結合を使います。
左のデータがつながっていない
左側のデータが入力されていません。
直し方 — 左入力につなぐノードを確かめてください。
右のデータがつながっていない
右側のデータが入力されていません。
直し方 — 右入力につなぐノードを確かめてください。
よく使う例
1. 全体の合計に対する比率を出す
お題 — 各行の売上が、全体の何割かを計算したい
入力 — 明細(左、店舗 と 売上)と、データ集計でグループを指定せずに出した合計 1 行(右、売上合計)
設定 — 挿入方向は「右のデータを左に挿入する」
出力 — 明細の全行に 売上合計 が付く。このあと数値列同士の演算で 売上 ÷ 売上合計 を出せば比率になる
2. 名前の重なる列を安全に並べる
お題 — 明細にも集計結果にも 売上 という列があり、両方を残したい
入力 — 明細(左、売上)と、合計だけの 1 行(右、売上)
設定 — 挿入方向は「右のデータを左に挿入する」
出力 — 売上 と 売上_1 の 2 列になる。元の 売上 は書き換わらない
3. 全体の平均を各行に並べる
お題 — 各行の売上と、全店舗の平均売上を同じ行に並べたい
入力 — 明細(左、店舗 と 売上)と、平均だけの 1 行(右、売上平均)
設定 — 挿入方向は「右のデータを左に挿入する」
出力 — 明細の全行に 売上平均 列が付き、同じ値が入る
4. 集計した基準日を全行に付ける
お題 — データを作った日を全行に残したい
入力 — 明細(左)と、基準日だけが入った 1 行(右、基準日)
設定 — 挿入方向は「右のデータを左に挿入する」
出力 — 明細の全行に 基準日 が付く。固定の日付でよいなら値を列に挿入の方が簡単です