

# [配列またはマップを行に分解] 変換の使用
<a name="transforms-explode-array"></a>

 **[分解]** 変換では、ネストされたデータ構造から値を抽出し、操作しやすい個々の行を追加できます。配列の場合、変換により配列の各値に対して行が生成され、その行に他の列の値が複製されます。マップの場合、変換によりキーと値を列として持つ各エントリに対して行が生成されます。各エントリには列としてのキーと値があり、その行に他の列も複製されます。

 例えば、このデータセットに複数の値がある「category」配列の列があるとします。


| product\$1id | category | 
| --- | --- | 
| 1 | [sports, winter] | 
| 2 | [garden, tools] | 
| 3 | [videogames] | 
| 4 | [game, boardgame, social] | 
| 5 | [] | 

 「category」列が同じ名前の列に分解されると、その列が上書きされます。NULL を含めるように選択すると、次のようになります (分かりやすいように順番になっています)。


| product\$1id | category | 
| --- | --- | 
| 1 | sports | 
| 1 | winter | 
| 2 | garden | 
| 2 | tool | 
| 3 | videogames | 
| 4 | ゲーム | 
| 4 | boardgame | 
| 4 | social | 
| 5 |  | 

**[配列またはマップを行に分解] 変換を追加するには:**

1. リソースパネルを開いて、**[Explode Array Or Map Into Rows]** を選択し、ジョブ図に新しい変換を追加します。ノードを追加する際に選択したノードが、その親になります。

1. (オプション) **[Node properties]** (ノードのプロパティ) タブで、ジョブ図にノードの名前を入力できます。ノードの親がまだ選択されていない場合は、[Node parents] (ノードの親) リストから、変換の入力ソースとして使用するノードを選択します。

1. **[変換]** タブで、分解する列を選択します (タイプが配列またはマップである必要があります)。次に、配列の項目を表す列の名前を入力するか、マップを分解する場合はキーと値を表す列の名前を入力します。

1. (オプション) **[変換]** タブでは、デフォルトで分解する列が NULL、またはデータ構造が空である場合、分解されたデータセットではその列が省略されます。(新しい列を NULL として) 行を残しておきたい場合は、[NULL を含む] にチェックを入れます。  
![\[スクリーンショットは、[配列またはマップを行に分解] 変換の [変換] タブを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/transforms-explode-array-transform-tab.png)