Hive 1.1.0 tez hadoop oracle NULL sort
最近发现hive 0.14 运行在tez的时候有不少bug,决定升级hive为hive 1.1.0,因为集群hadoop版本是2.3.0,一不小心踩到坑:
1、hive 1.1.0 需要jdk1.7以上
2、设置这个环境变量 HADOOP_USER_CLASSPATH_FIRST="true"
3、https://issues.apache.org/jira/browse/HIVE-9957 打上这个patch,此patch将在hive1.2.0中集成。编译hive 1.1.0源码后把 hive-shims-0.23-1.1.0.jar 替换了。最后记得还要替换hive-exec-1.1.0.jar中的Hadoop23Shims.class
另外提一点对于NULL的排序,hive与oracle有所不同,对于如下SQL:
SELECT
t.chanl_id,
t.date_id,
t.pltfm_id,
t.prov_id,
t.old_mbr_num,
ROW_NUMBER () OVER (partition by t.date_id ORDER BY t.old_mbr_num) ROW_NUMBER
FROM
data t;
Oracle 执行结果如下:
56859 2015-02-15 1 1 449 1
56859 2015-02-15 1 1 6869 2
56859 2015-02-15 1 1 7047 3
56859 2015-02-15 1 1 8628 4
56859 2015-02-15 1 1 11804 5
56859 2015-02-15 1 1 12089 6
56859 2015-02-15 1 1 18778 7
56859 2015-02-15 1 1 25906 8
。。。。
56859 2015-02-15 1 1 191046115 939
56859 2015-02-15 1 1 NULL 940
56859 2015-02-15 1 1 NULL 941
56859 2015-02-15 1 1 NULL 942
56859 2015-02-15 1 1 NULL 943
Hive 执行结果如下:
0 56859 2015-02-15 1 1 NULL 1
1 56859 2015-02-15 1 1 NULL 2
2 56859 2015-02-15 1 1 NULL 3
3 56859 2015-02-15 1 1 NULL 4
4 56859 2015-02-15 1 1 449 5
5 56859 2015-02-15 1 1 6869 6
6 56859 2015-02-15 1 1 7047 7
7 56859 2015-02-15 1 1 8628 8
8 56859 2015-02-15 1 1 11804 9
可见两者对于NULL的排序不一样。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341