近期看到很多人都在咨询表格转置方面的问题,实际上在之前的博客中,关于数据处理的流程有涉及到通过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种方式相关推荐

  1. layui根据条件显示列_templet渲染layui表格数据的三种方式

    layui前端框架是我一直在使用,也很好用. 今天记录一下,templet渲染layui表格数据的三种方式. 第一种:直接渲染(对于表格数据样式要求不高) 直接在动态表格字段声明,添加templet属 ...

  2. layui 表格内容写temple函数_templet渲染layui表格数据的三种方式

    layui前端框架是我一直在使用,也很好用. 今天记录一下,templet渲染layui表格数据的三种方式. 第一种:直接渲染(对于表格数据样式要求不高) 直接在动态表格字段声明,添加templet属 ...

  3. 表格拆分的两种方式 拆分成多个excel工作表或多个excel文件

    表格拆分的两种方式 拆分成多个excel工作表或多个excel文件 拆分Excel,可以分为3种层次:拆分excel单元格:拆分成多个excel工作表:拆分成多个excel文件 其中,第1种拆分是无法 ...

  4. JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式

    一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html><head><title>DHTML技术演示---表格创建--用最底层的方式,其实该方式 ...

  5. java自适应table_Java 设置Word中的表格自适应的3种方式

    概述 在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据内容调整表格AutoFitBehaviorType.Auto_ ...

  6. element 表格宽度自适应_Java 设置Word中的表格自适应的3种方式

    概述 在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据内容调整表格AutoFitBehaviorType.Auto_ ...

  7. java 设置word刷新_Java 设置Word中的表格自适应的3种方式

    概述 class="MsoNormal">在Word创建表格时,可设置表格"自动调整",有3种情况,通过Java程序设置可调用相应的方法来实现,即: 根据 ...

  8. Java生成Excel表格数据的两种方式(Easy Excel和SXSSFWorkbook)以及测试方法

    一. 使用alibaba中的Easy Excel工具 在gradle文件中引入依赖 dependencies {implementation 'com.alibaba:easyexcel:3.2.0' ...

  9. powershell 将文本转换成表格的还有一种方式

    $text=" 1 梦幻西游 216406 2014-01-21 资料片 2 炉石传说 15905 2014-01-24 公測 3 新大话西游 214465 2002-08-01 公測 4 ...

最新文章

  1. 只需一行代码,你的纯文本秒变 Markdown
  2. python读取.locs文件
  3. CSS你可能还不知道的一些知识点
  4. 新华社北京4月15日电 题:奋斗应提倡,996当退场
  5. Python中安装moveit_commander,顺带解决rospy模块未安装问题
  6. 【转载】java中泛型使用详解
  7. boost::sort模块实现spreadsort 字符串排序示例
  8. SAP CRM product customizing下载的第四个队列
  9. arp 命令最简单的小应用
  10. 基于ftp4j的FTP客户端工具
  11. 自媒体运营,你要的小工具来了
  12. 关于Document类型的总结
  13. Windows环境下用C语言实现CS模型(基于TCP协议)
  14. 【SpringBoot】MultipartResolver文件解析器
  15. 黑盒渗透测试指导之XML注入
  16. 客户机键盘某些键失灵
  17. 奋斗吧,程序员——第二十四章 想佳人、妆楼凝望,误几回、天际识归舟
  18. 如果格局决定人生,那到底什么决定了格局
  19. 给生活添加更多乐趣!便携实用的迷你打印机-咕咕机GT1体验
  20. 基于matlab的汽车操纵稳定性仿真分析,基于Matlab/Simulink的四轮转向汽车操纵稳定性分析...

热门文章

  1. 除了FastJson,你也应该了解一下Jackson(二)
  2. python3使用winpcap
  3. 计算机硬件造型,无奇不有!带你见识一下那些造型独特的电脑
  4. ssh命令+免密码登入
  5. 2021年全球壁挂式书柜行业调研及趋势分析报告
  6. 关于clearInterval的误区
  7. 在html中超链接_HTML 链接及页面内部链接
  8. Java基础 第五节 第七课
  9. Linux 平台使用smtp协议发送邮件
  10. vue报错 运行npm run dev报cjs.js缺失