[配列またはマップを行に分解] 変換の使用
[分解] 変換では、ネストされたデータ構造から値を抽出し、操作しやすい個々の行を追加できます。配列の場合、変換により配列の各値に対して行が生成され、その行に他の列の値が複製されます。マップの場合、変換によりキーと値を列として持つ各エントリに対して行が生成されます。各エントリには列としてのキーと値があり、その行に他の列も複製されます。
例えば、このデータセットに複数の値がある「category」配列の列があるとします。
product_id | category |
---|---|
1 | [sports, winter] |
2 | [garden, tools] |
3 | [videogames] |
4 | [game, boardgame, social] |
5 | [] |
「category」列が同じ名前の列に分解されると、その列が上書きされます。NULL を含めるように選択すると、次のようになります (分かりやすいように順番になっています)。
product_id | category |
---|---|
1 | sports |
1 | winter |
2 | garden |
2 | tool |
3 | videogames |
4 | ゲーム |
4 | boardgame |
4 | social |
5 |
[配列またはマップを行に分解] 変換を追加するには:
-
リソースパネルを開いて、[Explode Array Or Map Into Rows] を選択し、ジョブ図に新しい変換を追加します。ノードを追加する際に選択したノードが、その親になります。
-
(オプション) [Node properties] (ノードのプロパティ) タブで、ジョブ図にノードの名前を入力できます。ノードの親がまだ選択されていない場合は、[Node parents] (ノードの親) リストから、変換の入力ソースとして使用するノードを選択します。
-
[変換] タブで、分解する列を選択します (タイプが配列またはマップである必要があります)。次に、配列の項目を表す列の名前を入力するか、マップを分解する場合はキーと値を表す列の名前を入力します。
-
(オプション) [変換] タブでは、デフォルトで分解する列が NULL、またはデータ構造が空である場合、分解されたデータセットではその列が省略されます。(新しい列を NULL として) 行を残しておきたい場合は、[NULL を含む] にチェックを入れます。