hive 数据源,yarn 集群测试, SQL 分别取 topN5

开发者学堂课程【大数据实时计算框架Spark快速入门hive 数据源, yarn 集群测试,SQL 分别取 topN5 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/100/detail/1718


hive数据源,yarn 集群测试,SQL分别取topN5


内容简介:

一、具体内容

二、按照排序

三、开窗函数 rownumber


一、具体内容

按照 category 这个内别来进行分组分组之后在 order by 按照年收入进行排序,进行倒叙的按照排完的数据再进行分窗打一个行号,既 row number 行号,出来的行号是新的一列称之为 rank ,这样在外面去取数据的时候就直接可以把打完行号的数据起个别名,叫 tmp sale s,取出来 product 产品这个字段,取出来品类category 这个字段取出来 revenue 年收入这个字段取出来 rank 这个字段,起个别名 tmp sales 然后最后真正要的并不是要 rank 排名只是根据它来弄一个条件,这个 where rank 小于3这样就把每一个分组里面排名前三的找出来了因为行号是从1开始,所以是要从小于3开始,所以<等于3取前三个,这样就做到了分组去 top3,应用完 sql 语句后,结果会生成 datefree ,把结果存到 hive 里面去。这个东西要测,就是打入一个炸包放到集群里面去执行,第一列可以认为是产品的型号,第二列是产品的类别,比如 cell phone和tablelet 按照分组,就是像手机或者平板。


二、按照排序

按照第三列 revenue load date 的时候第一列就是产品,以此类推,分成手机和平板两个类别,两个类别里面再倒叙,然后再返回行号,就是一个 rank ,最后再根据行号再来过滤, cell phone 里面 6000 和 5000 排在前,跑完程序看是否是那个结果。


三、开窗函数 rownumber

这个函数只对 hive 这个功能有效,如果是读一个 sql 的数据,那就不行,通常是用一个炸包去测试,开始读 hive 的时候本质上这个数据在 IDFI 上面,那在一开始的时候,刚开始读的时候那个 ID 取决于有多少 log,如果在 sparksql 里面有那个操作,那就会变成默认的200,也可以直接改了在 confset 一下就可以直接改,可以设置 200 的大小。

上一篇:Linux网络编程&内核学习


下一篇:Linux性能优化和监控系列(三)——分析Memory使用状况