Hive 使用总结
1 带分区列的表更改列类型
常见的一个场景是Hive里面一个带分区的表,原来是int类型的字段,后来发现数据超过了int的最大值,要改成bigint。或者是bigint要改string或decimal。无论如何,对于带分区的表,要改列类型,有一个坑:
如果使用alter table t change column oldcol newcol bigint,即把int类型的oldcol改为bigint类型的newcol 这个时候,去读数据,应该还是NULL的。 这是因为每个分区Hive还会存一份元数据,于是两种解决方案: 一个是alter table t change column oldcol newcol bigint cascade 一个是alter table t change column oldcol newcol bigint, alter table t partition(...) change column oldcol newcol bigint
2 left join 问题(hive/mysql通用)
在left join语句中,左表过滤必须放where条件中,右表过滤必须放on条件中,这样结果才能不多不少,刚刚好。
3 行转列
曾经一个场景使用过的
select plan_id,id,
concat_ws('',collect_set(if(user_type=1,user_id,''))) teacher_id,
concat_ws('',collect_set(if(user_type=0,user_id,''))) student_id,
concat_ws('',collect_set(if(user_type=1,count,''))) t_count,
concat_ws('',collect_set(if(user_type=0,count,''))) s_count
from tmp.table_name
group by plan_id,id
4 json字符串解析
好像是网上找的
一个Map结构嵌套了Map,再嵌套了一个数组结构。
{"username":"king","actionInfo":{"id":1,"age":"22","partList":[{"code":"123","uname":"king"},{"code":"0012","uname":"king"}]}} 通过json_tuple, get_json_object,explode等函数将string类型解析出来,使用正则的方式,将中括号替换掉,然后在转化为数组
select username,ai.id,ai.age,p.uname,p.code from test1
lateral view json_tuple(actioninfo,'id','age','partlist') ai as id,age,partlist
lateral view explode(split(regexp_replace(regexp_extract(partlist,'^\\[(.+)\\]$',1),'\\}\\,\\{', '\\}\\|\\|\\{'),'\\|\\|')) partlist as p
lateral view json_tuple(p,'code','uname') p as code,uname
5 四舍五入函数
round() 遵循四舍五入把原值转化为指定小数位数,如:round(1.45,0) = 1;round(1.55,0)=2
floor()向下舍入为指定小数位数 如:floor(1.45,0)= 1;floor(1.55,0) = 1
ceiling()向上舍入为指定小数位数 如:ceiling(1.45,0) = 2;ceiling(1.55,0)=2
Hive 使用总结的更多相关文章
- 初识Hadoop、Hive
2016.10.13 20:28 很久没有写随笔了,自打小宝出生后就没有写过新的文章.数次来到博客园,想开始新的学习历程,总是被各种琐事中断.一方面确实是最近的项目工作比较忙,各个集群频繁地上线加多版 ...
- Hive安装配置指北(含Hive Metastore详解)
个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- HIVE教程
完整PDF下载:<HIVE简明教程> 前言 Hive是对于数据仓库进行管理和分析的工具.但是不要被“数据仓库”这个词所吓倒,数据仓库是很复杂的东西,但是如果你会SQL,就会发现Hive是那 ...
- 基于Ubuntu Hadoop的群集搭建Hive
Hive是Hadoop生态中的一个重要组成部分,主要用于数据仓库.前面的文章中我们已经搭建好了Hadoop的群集,下面我们在这个群集上再搭建Hive的群集. 1.安装MySQL 1.1安装MySQL ...
- hive
Hive Documentation https://cwiki.apache.org/confluence/display/Hive/Home 2016-12-22 14:52:41 ANTLR ...
- 深入浅出数据仓库中SQL性能优化之Hive篇
转自:http://www.csdn.net/article/2015-01-13/2823530 一个Hive查询生成多个Map Reduce Job,一个Map Reduce Job又有Map,R ...
- Hive读取外表数据时跳过文件行首和行尾
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 有时候用hive读取外表数据时,比如csv这种类型的,需要跳过行首或者行尾一些和数据无关的或者自 ...
- Hive索引功能测试
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 从Hive的官方wiki来看,Hive0.7以后增加了一个对表建立index的功能,想试下性能是 ...
- 轻量级OLAP(二):Hive + Elasticsearch
1. 引言 在做OLAP数据分析时,常常会遇到过滤分析需求,比如:除去只有性别.常驻地标签的用户,计算广告媒体上的覆盖UV.OLAP解决方案Kylin不支持复杂数据类型(array.struct.ma ...
随机推荐
- Docker 的 2020,实 "鼠" 不易!
元旦你们出去嗨,栈长在家撸文章,惨惨惨- 没错, Docker 的 2020 年也过的不是很顺利,可以说是流年不利.命运多舛,一年发生两件大事,太折腾! 相信大家也已经看到很多相关的报道了,但同时也有 ...
- uniapp H5引入腾讯地图
在网上搜索了许多关于uniapp引入腾讯地图的方法都以失败告终,我开发的应用主要使用于H5,小程序与H5是不同的sdk,就不在这说了,况且小程序有手把手教学,可参考腾讯地图官网https://lbs. ...
- 浅谈java中的枚举类型(转)
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- U盘容量变小处理
参考: https://blog.csdn.net/weixin_39792252/article/details/80676300?utm_medium=distribute.pc_relevant ...
- ARM杂散知识
画重点: 1.存储器格式:重点是大小端识别 经常考 2.对齐后结构体占用空间大小:使用aligned,packed,#pragma pack()三种方式都要会 Thumb指令集 Thumb指令集能够以 ...
- elasticsearch迁移工具--elasticdump的使用
这篇文章主要讨论使用Elasticdump工具做数据的备份和type删除. Elasticsearch的备份,不像MYSQL的myslqdump那么方便,它需要一个插件进行数据的导出和导入进行备份和恢 ...
- hbase读写优化
一.hbase读优化 客户端优化 1.scan缓存是否设置合理? 优化原理:一次scan请求,实际并不会一次就将所有数据加载到本地,而是多次RPC请求进行加载.默认100条数据大小. 优化建议:大sc ...
- php利用腾讯ip分享计划获取地理位置示例分享
<?php function getIPLoc_QQ($queryIP){ $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$quer ...
- Unity 编辑器(移除missing)
移除 Missing(Mono Script) ` private static void FindMissingReferences() { GameObject[] pAllObjects = ( ...
- SpringBoot WebSocket技术
最近看了Spring in Action,了解了一下WebSocket和Stomp协议相关技术,并搭建了一个项目.网上的例子不完整或者描述不清,所以自己记录一下以作备忘. 一.配置 Spring Bo ...