FME处理表格转置的3种方式
近期看到很多人都在咨询表格转置方面的问题,实际上在之前的博客中,关于数据处理的流程有涉及到通过FME如何进行表格数据的转置处理。既然很多人都在咨询转置的问题,这里就形成一篇定向博客,为大家统一的讲解FME中处理表格转置的几种方法。
1、原始数据与实现成果
2、FME处理表格转置的方式:
(1)AttributePivoter
(2)Pythoncaller
(3)AttributeTransposer
AttributePivoter
(1) 通过AttributePivoter转换器实现数据的转置,通过Dynamic动态流控制数据输出的结构。
首先想要实现数据转置,在FME里可直接采用AttributePivoter转换器。以测试数据为例,测试数据包括的属性字段:“项目编号”字段为转置的分类字段;“环节”字段为转置后想要输出的属性字段名称;“日期”字段为转置后的属性值。按照测试数据进行数据转置,AttributePivoter转换器的设置如下:
AttributePivoter转换器不仅可以对数据进行转置处理,同时也可对数据进行统计(如上图第4部分参数的内容),如果您在转置的过程中无需进行统计的处理,可以将“Include Grand Total Columns”参数设置为“NO”,即可不输出统计列。
处理后得到的数据如下:
(2)结构输出
根据以上AttributePivoter转换器处理数据的成果大家可以看到,转置之后是不会自动将成果属性字段暴露为用户属性。那么有些用户可能会有疑问,输出的时候如何输出成果字段?
入门一点的方法,可以添加AttributeExposer转换器把需要输出的属性字段都暴露出来再输出。
再通过静态输出到excel表等数据格式中
以上的方式可以得到最终转置后的成果,但是FME经验玩家会发现这种方式不智能,在AttributeExposer转换器时需要手动去设置需要暴露的属性字段,遇到属性字段非常多的时候,这种输出方式过于费时。
大家肯定要疑问,如何有效的解决这种问题?
我们不妨再来分析一下前面的中间结果,对AttributePivoter转换器成果的结果再进行分析,发现本身AttributePivoter转换器转置后生成成果中会自动创建schema属性结构。
不由想到,动态输出方式中支持schema结构输出的方式,是否可以按照动态输出,选择scheme结构的方式动态的保存数据结构。
经过测试,动态输出通过schema保存结构。这种方式解决了AttributeExposer转换器手动暴露字段的烦恼。
当然转置的处理除了AttributePivoter转换器外,还可以采用以下两种方式进行:
Pythoncaller
用PythonCaller转换器调用Python代码来实现。
之前的“FME实现三调地类变化流量表制作”的博客里用的就是PythonCaller转换器编写代码的方式,来完成二调数据结构与三调数据结构不一致时,数据的转换问题。
AttributeTransposer
FME Hub是广大FME爱好者自行封装,分享给大家使用的共享平台。AttributeTransposer为FME Hub所提供的转换器,能够解决简单的表格转置问题。
如上图所示,如果数据无需进行分类是,用AttributeTransposer转换器可以直接将表格进行转置,但如果原始数据存在分类,则直接使用AttributeTransposer转换器无法达到正确的效果。
以原始演示数据为例:
涉及分类的源数据样式无法用AttributeTransposer转换器直接实现。
总结,千人千面,数据是变化多端的,处理方式也是变化多端的,大家可以根据自己的需要进行选择,本篇博客转置的处理方式就介绍到这里。
FME处理表格转置的3种方式相关推荐
- layui根据条件显示列_templet渲染layui表格数据的三种方式
layui前端框架是我一直在使用,也很好用. 今天记录一下,templet渲染layui表格数据的三种方式. 第一种:直接渲染(对于表格数据样式要求不高) 直接在动态表格字段声明,添加templet属 ...
- layui 表格内容写temple函数_templet渲染layui表格数据的三种方式
layui前端框架是我一直在使用,也很好用. 今天记录一下,templet渲染layui表格数据的三种方式. 第一种:直接渲染(对于表格数据样式要求不高) 直接在动态表格字段声明,添加templet属 ...
- 表格拆分的两种方式 拆分成多个excel工作表或多个excel文件
表格拆分的两种方式 拆分成多个excel工作表或多个excel文件 拆分Excel,可以分为3种层次:拆分excel单元格:拆分成多个excel工作表:拆分成多个excel文件 其中,第1种拆分是无法 ...
- JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式
一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html><head><title>DHTML技术演示---表格创建--用最底层的方式,其实该方式 ...
- java自适应table_Java 设置Word中的表格自适应的3种方式
概述 在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据内容调整表格AutoFitBehaviorType.Auto_ ...
- element 表格宽度自适应_Java 设置Word中的表格自适应的3种方式
概述 在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据内容调整表格AutoFitBehaviorType.Auto_ ...
- java 设置word刷新_Java 设置Word中的表格自适应的3种方式
概述 class="MsoNormal">在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据 ...
- Java生成Excel表格数据的两种方式(Easy Excel和SXSSFWorkbook)以及测试方法
一. 使用alibaba中的Easy Excel工具 在gradle文件中引入依赖 dependencies {implementation 'com.alibaba:easyexcel:3.2.0' ...
- powershell 将文本转换成表格的还有一种方式
$text=" 1 梦幻西游 216406 2014-01-21 资料片 2 炉石传说 15905 2014-01-24 公測 3 新大话西游 214465 2002-08-01 公測 4 ...
最新文章
- 只需一行代码,你的纯文本秒变 Markdown
- python读取.locs文件
- CSS你可能还不知道的一些知识点
- 新华社北京4月15日电 题:奋斗应提倡,996当退场
- Python中安装moveit_commander,顺带解决rospy模块未安装问题
- 【转载】java中泛型使用详解
- boost::sort模块实现spreadsort 字符串排序示例
- SAP CRM product customizing下载的第四个队列
- arp 命令最简单的小应用
- 基于ftp4j的FTP客户端工具
- 自媒体运营,你要的小工具来了
- 关于Document类型的总结
- Windows环境下用C语言实现CS模型(基于TCP协议)
- 【SpringBoot】MultipartResolver文件解析器
- 黑盒渗透测试指导之XML注入
- 客户机键盘某些键失灵
- 奋斗吧,程序员——第二十四章 想佳人、妆楼凝望,误几回、天际识归舟
- 如果格局决定人生,那到底什么决定了格局
- 给生活添加更多乐趣!便携实用的迷你打印机-咕咕机GT1体验
- 基于matlab的汽车操纵稳定性仿真分析,基于Matlab/Simulink的四轮转向汽车操纵稳定性分析...