hive查询 数据格式不正确的问题

今天帮后端同学写个hive语句,看了一眼数据格式之后,以为是嵌套的json结构,于是用later view json_tuple() 来解析,然后一直在抛出输入参数不是String类型的异常,觉得很奇怪,于是检查了一遍表的数据结构,发现不是json的结构,json结构里面key与value都是包含有\的,只是单纯的struct嵌套map的结构,struct直接读取就可以,map用map['key']取就可以,舍近求远了。
后来发现问题的原因是hive在显示Array,Map,Struct结构时,都会以JSON的格式进行显示,并且真正的读取null字段时,如果读取的字段不存在,是会返回null的,并不会真正的抛出参数不匹配的异常。
任务跑成功之后,任务长时间不执行reduce,同事说是数据倾斜,但是后来一想,我的hive语句中不包含任何需要reduce的操作,应该不会导致数据倾斜。
并且任务中设置了参数:set hive.groupby.skewindata=true;

深入了解了一下,需要reduce的常用操作有count(distinct colmn),groupBy,join;这三个操作数据分布不均都会对任务执行造成影响。orderBy也有reduce,但是数据倾斜不会造成影响,因为orderBy都是最后聚合到一个reduce task中执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值