1、
当某个字段应用了case when 条件并且使用了or, 且where查询条件的里正好有该字段,查询结果会出错
针对查询一出现问题,修改下SQL, 将case when then else end, 改成case when then when then else end即可
2、
Order by 能够预期产生完全排序的结果,但是它是通过只用一个reduce来做到这点的。所以对于大规模的数据集它的效率非常低。在很多情况下,并不需要全局排序,此时可以换成Hive的非标准扩展sort by。Sort by为每个reducer产生一个排序文件。在有些情况下,你需要控制某个特定行应该到哪个reducer,通常是为了进行后续的聚集操作。Hive的distribute by 子句可以做这件事。