当前位置: 首页 > news >正文

广元网站建设公司低价网站建设制作设计公司

广元网站建设公司,低价网站建设制作设计公司,东营有能做网站优化,杭州响应式网站背景假设有一个学生各门课的成绩的表单#xff0c;应用hive取出每科成绩前100名的学生成绩。这个就是典型在分组取Top N的需求。解决思路对于取出每科成绩前100名的学生成绩#xff0c;针对学生成绩表#xff0c;根据学科#xff0c;成绩做orderby排序,然后对排序后的成绩应用hive取出每科成绩前100名的学生成绩。这个就是典型在分组取Top N的需求。解决思路对于取出每科成绩前100名的学生成绩针对学生成绩表根据学科成绩做orderby排序,然后对排序后的成绩执行自定义函数row_number(),必须带一个或者多个列参数如ROW_NUMBER(col1,....)它的作用是按指定的列进行分组生成行序列。在ROW_NUMBER(a,b)时若两条记录的ab列相同则行序列1否则重新计数。只要返回row_number()返回值小于100的的成绩记录就可以返回每个单科成绩前一百的学生Sql代码  create table score_table (subject string,student string,score int)partitioned by (date string);如果要查询2012年每科成绩前100的学生成绩sql如下Java代码  create temporary function row_number as com.blue.hive.udf.RowNumber;select subject,score,student from(select subject,score,student from score where dt2012 order by subject,socre desc) order_scorewhere row_number(subject)  100;com.blue.hive.udf.RowNumber是自定义函数函数的作用是按指定的列进行分组生成行序列。这里根据每个科目的所有成绩生成序列序列值从1开始自增。执行row_number函数返回值如下科目 成绩 学生 row_number物理 100 张一 1物理 90 张二 2物理 80 张三 3.....数学 100 李一 1数学 90 李二 2数学 80 李三 3....row_number的源码函数row_number(),必须带一个或者多个列参数如ROW_NUMBER(col1,....)它的作用是按指定的列进行分组生成行序列。在ROW_NUMBER(a,b)时若两条记录的ab列相同则行序列1否则重新计数。package com.blue.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class RowNumber extends UDF {private static int MAX_VALUE 50;private static String comparedColumn[] new String[MAX_VALUE];private static int rowNum 1;public int evaluate(Object... args) {String columnValue[] new String[args.length];for (int i 0; i args.length; i) 『columnValue[i] args[i].toString();}if (rowNum 1) {for (int i 0; i columnValue.length; i)comparedColumn[i] columnValue[i];}for (int i 0; i columnValue.length; i) {if (!comparedColumn[i].equals(columnValue[i])) {for (int j 0; j columnValue.length; j) {comparedColumn[j] columnValue[j];}rowNum 1;return rowNum;}}return rowNum;}}编译后打包成一个jar包如/usr/local/hive/udf/blueudf.jar然后在hive shell下使用如下:add jar /usr/local/hive/udf/blueudf.jar;create temporary function row_number as com.blue.hive.udf.RowNumber;select subject,score,student from(select subject,score,student from score where dt2012 order by subject,socre desc) order_scorewhere row_number(subject) 100;同样这个函数可以用作去重操作。可以替代大批量数据的DISTINCT通过执行如select * from(select type,value,row_number() as rnfromlog_table distribute by type,valuesort by type,value)where rn 1;注意但是使用row_number()函数需要注意一点必须使用sortby。测试的时候必须使用order by。row_number()函数会假设数据有序的基础上进行的。
http://www.pierceye.com/news/546072/

相关文章:

  • 青岛seo网站排名优化wordpress页面伪静态
  • 汕尾东莞网站建设wordpress 反斜杠
  • 免费养殖网站模板jquery 的网站模板下载地址
  • 东莞市手机网站建设wordpress异步上传图片
  • 网站阵地建设管理郑州做网站多少钱
  • 自建站平台官方网站建设手机银行
  • 手机端的网站怎么做的苏州网站开发建设
  • wordpress 中型网站重庆seo网站管理
  • 网站有那些风格佛山小程序开发公司
  • 摄影网站制作长春网站建设哪家好
  • 制作社交网站wordpress 自定义文章类型 分页
  • 网站建设服务平台网站免费推广策划方案
  • 福田网站建设电话烟台艺术学校官网
  • iis上部署手机网站网页网站自做全搞定
  • 推荐成都网站建设四川seo推广方案
  • python做网站步骤您的php似乎没有安装运行wordpress所必需的mysql扩展
  • 汕头网站快速排名优化无极网站维护
  • 青岛胶南做网站的赣州章贡区人口
  • 株洲市建设质监站网站高端网站设计理念
  • 俄语网站推广视频聚合网站怎么做不侵权
  • 电商网站 建设目标详细说明ppt公司简介页面设计
  • 制作网站需要学什么软件爱站网关键词查询网站
  • 湘潭网站建设 就找磐石网络网站建设与网络编辑综合实训课程指导手册pdf
  • 生产企业做网站有用吗做公众号编辑用什么网站
  • 宜春做网站的公司wordpress博客下载插件
  • python创建网站网站开发技术与开发环境
  • 云南放心seo整站优化培训网页
  • 本地写wordpress北京百度seo点击器
  • 网站打不开怎么做wordpress 显示 链接深度
  • 新人怎么自己做网站更换wordpress语言包