历史版本12 :列转行 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

[helpvideo]5449[/helpvideo]

1.1 版本

FineDataLink 版本功能变动
3.5「数据转换」节点新增算子「行列转换」,目前支持列转行功能,行转列功能敬请期待
4.0.14行转列和「列转行」拆分

1.2 应用场景

使用 FineDataLink 进行 ETL 开发过程中,如果数据是二维表,想要通过列转行,将二维表转化为一维表。

1.3 功能说明

可以对输入的二维表进列转行操作,输出一维表。

「数据转换」节点新增算子「行列转换」,可实现列转行功能,如下图所示:

2. 操作步骤编辑

示例数据下载:成绩.xls

对于二维表:

希望表数据按照科目分数展示。如下图所示:

2.1 数据输入

创建一个定时任务,将一个数据转换节点拖到设计界面。如下图所示:

新建「数据转换」节点,进入编辑界面,新增 DB表输入节点,如下图所示:

取出成绩表中的数据,如下图所示:

点击「数据预览」,即可预览数据,如下图所示:

2.2 列转行

新增「列转行」,使用线条跟它的上游「DB表输入」算子相连,设置属性字段为「科目」,也就是希望将语文、数学、英语这些数据归类为「科目」字段,如下图所示:

注:归类的属性字段不允许为空,字符长度<=30字符,只能是字母 (a-z A-Z)、数字 (0-9)、下划线(_)、或中文的组合,不能包含空格,不能与取值字段及原表去除转换字段外的其他字段名重复。

列转行时,指定取值字段名称,将所选择的需要列转行的字段值放入该列,示例中将不同「科目」对应的分数值命名为「分数」,如下图所示:

点击「选择转换字段」,指定可编辑列表中「转换字段」,也就是指定需要进行列转行的字段,如下图所示:

可以设置列转行后数据值的名称,如下图所示:

点击「数据预览」,即可看到列转行后的数据,如下图所示:

2.3 输出数据

再将一个「DB表输出」算子拖到设计界面,并使用线条跟它的上游「行列转换」算子相连。

设置将处理好的数据输出至指定的数据库中,如下图所示:

2.4 运行任务

1)点击右上角保存并运行,日志有执行成功信息表示任务成功运行。如下图所示:

可以看到数据库中新增了列转行后数据。如下图所示:

3. 注意事项编辑

列转行时,列值有NULL或空字符串。如下图所示:

15.png

列转行后,对应取值字段的值输出NULL。如下图所示:

16.png