使用“分解数组或映射到行”转换
分解转换允许您将嵌套结构中的值提取到更易于操作的单个行中。对于数组,转换将为数组的每个值生成一行,复制该行中其他列的值。对于映射,转换将为每个条目生成一行,键和值为列,再加上该行中的任何其他列。
例如,如果我们有这个数据集,它有一个包含多个值的“类别”数组列。
product_id | 类别 |
---|---|
1 | [运动、冬季] |
2 | [花园、工具] |
3 | [电子游戏] |
4 | [游戏、棋盘游戏、社交] |
5 | [] |
如果您将“类别”列分解为具有相同名称的列,则将覆盖该列。您可以选择要包含 NULL 以获得以下内容(出于说明目的排序):
product_id | 类别 |
---|---|
1 | 运动 |
1 | 冬天 |
2 | 花园 |
2 | 工具 |
3 | 电子游戏 |
4 | 游戏 |
4 | 棋盘游戏 |
4 | 社交 |
5 |
要添加“分解数组”或“映射成行”转换,请执行以下操作:
-
打开资源面板,然后选择分解数组或映射到行将新转换添加到作业图。添加节点时选择的节点将是其父节点。
-
(可选)在节点属性选项卡上,输入任务图中节点的名称。如果尚未选择父节点,请从 Node parents (父节点) 列表中选择一个节点,用作转换的输入源。
-
在转换选项卡上,选择要分解的列(它必须是数组或地图类型)。然后,如果要分解地图,则为数组中的项目输入列的名称,或者为键和值输入列的名称。
-
(可选)在转换选项卡上,默认情况下,如果要分解的列为 NULL 或结构为空,则在分解的数据集中将省略该列。如果要保留该行(将新列设置为 NULL),请选中“包含 NULL”。