HIVE迁移的点点滴滴(二)--rownum分组
2014-05-23 11:08
204 查看
今天编写的脚本里有个根据某个字段进行rownum分组的需求。在oracle这个用分析函数row_number() over,能很轻松搞定,hive里就麻烦了。模拟的表结构如下:user_id buy_num rownum 1 30 1 1 20 2 1 10 3 2 50 1 2 20 2其中rownum就是我们要生成的。
第一反应肯定是用UDF写一个自定义函数,网上搜了下,解决方案还是蛮多的http://hi.baidu.com/asweknow/item/107f418c794e1fd55e0ec1b4在eclipse里建一个工程,把hive里面的jar包导进去,代码扔进去,打个jar包出来。很简单,具体使用可以参考我之前的博文。
创建表:
数据导入:
导入udf函数
结果出来了,很理想
不过网上说,当多个map运行时就会出问题。这是显然的,因为静态变量rownum木有被多个map共享嘛。现在测试中数据不多,只用了1个map还没出现这种情况。
第一反应肯定是用UDF写一个自定义函数,网上搜了下,解决方案还是蛮多的http://hi.baidu.com/asweknow/item/107f418c794e1fd55e0ec1b4在eclipse里建一个工程,把hive里面的jar包导进去,代码扔进去,打个jar包出来。很简单,具体使用可以参考我之前的博文。
创建表:
数据导入:
导入udf函数
结果出来了,很理想
不过网上说,当多个map运行时就会出问题。这是显然的,因为静态变量rownum木有被多个map共享嘛。现在测试中数据不多,只用了1个map还没出现这种情况。
相关文章推荐
- HIVE迁移的点点滴滴(一)
- HIVE迁移的点点滴滴(四)--HIVE数据导出及自定义分隔符
- HIVE迁移的点点滴滴--HIVE子查询(三)
- Hive分组统计前top N条记录
- 【源】从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上
- 一文读懂Hive分析窗口函数(hive做累计、分组、排序、层次等计算)
- Sqoop数据迁移,工作机制,sqoop安装(配置),Sqoop的数据导入,导入表数据到HDFS,导入关系表到HIVE,导入到HDFS指定目录,导入表数据子集,按需导入,增量导入,sqoop数据导出
- hive数据迁移,cdh3u5的hive中数据迁移到cdh5.1的hive中
- Pig、Hive、MapReduce 解决分组 Top K 问题
- Pig、Hive、MapReduce解决分组Top K问题(组内排序)
- sqoop迁移mysql数据到hive中
- Hive分组统计前top N条记录
- 在HortonWorks HDP 2.1 和2.2 集群间进行数据迁移 包括(Hive数据表)
- hive迁移hadoop namenode时遇到的问题
- hadoop跨集群之间迁移hive数据
- hive 排序 分组计数后排序 几种不同函数的效果
- 如何将hive表文本格式的源文件迁移至Oracle数据库或者excel文档中
- MySQL向Hive/HBase的迁移工具
- Hive 【分组topk 有用的】
- Hive分组统计前top N条记录