

# 使用“数组转列”转换将数组中的元素提取到顶级列中
<a name="transforms-array-to-columns"></a>

 “数组转列”转换允许将数组类型的列的部分或全部元素提取到新列中。如果数组有足够的值可供提取，则转换将尽可能多地填充新列，也可以选择提取指定位置的元素。

 例如，如果您有一个数组列“子网”，这是在 ip v4 子网上应用“拆分字符串”转换的结果，则可以将第一个和第四个位置提取到新列“first\_octect”和“forth\_octect”中。在本例中，转换的输出将是（请注意，最后两行的数组比预期的要短）：


| 子网 | first\_octect | fourth\_octect | 
| --- | --- | --- | 
| [54, 240, 197, 238] | 54 | 238 | 
| [192, 168, 0, 1] | 192 | 1 | 
| [192, 168] | 192 |  | 
| [] |  |  | 

**要添加“数组转列”转换，请执行以下操作：**

1. 打开资源面板，然后选择**数组转列**将新转换添加到作业图。添加节点时选择的节点将是其父节点。

1. （可选）在**节点属性**选项卡上，输入任务图中节点的名称。如果尚未选择父节点，请从 Node parents (父节点) 列表中选择一个节点，用作转换的输入源。

1. 在**转换**选项卡上，选择要提取的数组列，然后为提取的令牌输入新列的列表。  
![屏幕截图显示了“数组转列”转换的“转换”选项卡。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/transforms-array-to-columns-transform-tab.png)

1. （可选）如果您不想使用数组令牌来分配给列，则可以指定要采用的索引，这些索引将按指定的相同顺序分配给列的列表。例如，如果输出列是“column1, column2, column3”，索引 为“4, 1, 3”，则数组的第四个元素将转到第 1 列，第一个元素进入第 2 列，第三个元素进入第 3 列（如果数组短于索引号，则将设置为 NULL 值）。