美文网首页
kettle 行转列 与 列转行

kettle 行转列 与 列转行

作者: xiuxiuxiucai | 来源:发表于2019-10-28 09:47 被阅读0次

横表与竖表

横表 竖表

上面两张图是同样数据的两种存储方法,1为横表,2为竖表

容易看出,竖表中的 subject 字段非常重要,这一列的数据去重后为 chinese, math, english ,即横表中的三个字段名,在kettle的行列互转中,这个 subject 字段被称为 Key字段(关键字段)

行转列

将横表转为竖表即为kettle的行转列,其核心为横表的chinese, math, english字段转为了竖表的subject的值,将横表chinese, math, english的数据转为了竖表的grade的值

整体转换

  • 两个对象

表输入

  • 读取student表,下方视图中可看到当前的数据
  • 行转列操作无需排序

行转列

  • Key字段(起个名即可):即Key字段(关键字段)subject,行转列操作后,chinese, math, english三个字段会变成一个新的字段的值,Key字段就是为这个新字段起个名称
  • 字段名称:填写横表需要行转列的字段,在这写的字段会从原来的字段名转变为一列数据,这列数据的列名为上面设置的Key字段名。
  • Key值(不重要,一般与字段名称一致即可):转为列之后更改字段名称
  • Value字段(不重要,起个名即可):行转列的那些字段之前是有很多数据的,给这些数据起个名字,名字都一致即可,多了也没用
  • 另外,kettle的行转列对象有个bug,在对象窗口的左上角写的可能是列转行,无视就好

列转行

将竖表转为横表即为kettle的列转行,其核心为竖表的Key字段(关键字段)的数据聚合后成为横表的字段名,即subject的chinese, math, english,本例中聚合字段为subject, studentID

表输入

  • 读取student表
  • 所有聚合字段必须先排序

列转行

  • 关键字段:即关键字段subject,列转行的核心字段,此字段会进行聚合操作,聚合结果作为之后横表的新字段名
  • 分组字段:关键字段的数据(chinese, math, english)有重复,它的重复是有规律的,即每增加一个学生(studentID),其数据一般就会重复一次,其中决定它重复的字段studentID就是分组字段。此项可以为空,如果为空,那么转换前有多少行数据,转换后就有多少个字段(差不多)。
  • 目标字段:关键字段的数据去重后(chinese, math, english)变成字段名,给这些字段名起个别名,一般与关键字值一致即可
  • 数据字段:在竖表中,有一个与关键字段一一对应的数据字段,它的字段名填在这,本例中为grade
  • 关键字值:关键字段的数据去重后(chinese, math, english)即为关键字值
  • 聚合:列转行核心是对关键字段的聚合操作,除关键字段与分组字段之外,其他字段的聚合方式在这里选择,比如本例选择的最大值,id和name就会在聚合后取最大的一个值

相关文章

  • sql中列转行unpivot、行转列pivot详细讲解||Mys

    目录:一、sqlserver列转行、行转列详解二、Oracle列转行、行转列详解三、DB2列转行、行转列详解四、M...

  • kettle 行转列 与 列转行

    横表与竖表 上面两张图是同样数据的两种存储方法,1为横表,2为竖表 容易看出,竖表中的 subject 字段非常重...

  • mysql开发技巧笔记

    行转列 结果 使用 SUM 进行 行转列 列转行 应用场景 属性拆分 etl数据处理 1. 利用序列表处理列转行的...

  • Hive的几个复杂情况

    行转列与列转行: https://blog.csdn.net/jx_870915876/article/detai...

  • Hive行转列与列转行

    行转列 定义:多行转多列或者多行转一列 原始数据如下: 姓名科目分数小明语文90小明数学98小明英语95小红语文9...

  • SQL行列转换

    行转列1.1、case when1.2、内置函数pivot 列转行2.1、unpivot2.2、union实现

  • sql行转列,列转行

    行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL ...

  • hive 行转列 列转行

    列转行 数据分析时需要行中的数据拆成多列,则需要用到:1,lateral view2,explode原始表tabl...

  • SQL列转行、行转列

    笔者前不久终于发布了自己的APP《小印记》,希望读者能前往App Store下载《小印记》支持一下笔者,谢谢!? ...

  • hive行转列,列转行

    难点,加强

网友评论

      本文标题:kettle 行转列 与 列转行

      本文链接:https://www.haomeiwen.com/subject/jymrvctx.html