hive
陈彦云
进阶ing
展开
-
为什么在mysql数据库中show tables之前要先use hive?
因为mysql中存储的是hive的元数据原创 2019-02-21 16:38:38 · 1762 阅读 · 0 评论 -
空字段赋值
NVL:给值为NULL的数据赋值,它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。例如:如果员工的comm为NULL,则用-1代替 select nvl(comm,-1) from emp; ...原创 2019-08-11 18:32:50 · 596 阅读 · 0 评论 -
行转列
1.相关函数说明 CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数...原创 2019-08-11 19:06:32 · 2015 阅读 · 1 评论 -
列转行
1,函数说明EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行。LATERAL VIEW 用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias 解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆...原创 2019-08-11 19:16:43 · 1736 阅读 · 0 评论 -
窗口函数
1.相关函数说明OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化CURRENT ROW:当前行n PRECEDING:往前n行数据n FOLLOWING:往后n行数据UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING表示到后面的终点LAG(col,n):往前第n行数...原创 2019-08-11 20:41:58 · 133 阅读 · 0 评论 -
Rank
1,函数说明RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算2,数据准备 name subject score 孙悟空 语文 87 孙悟空 ...原创 2019-08-11 21:15:07 · 277 阅读 · 0 评论 -
文件存储格式
Hive支持的存储数的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET1.行存储的特点查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。2.列存储的特点因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量;每个...原创 2019-08-11 21:27:50 · 319 阅读 · 0 评论 -
sql语句中的where 1=1
1=1 永真, 1<>1 永假1<>1 的用处:用于只取结构不取数据的场合例如:create table table_temp tablespace tbs_temp asselect * from table_ori where 1<>1建成一个与table_ori 结构相同的表table_temp,但是不要table_ori 里的数据...原创 2019-08-28 11:30:31 · 1123 阅读 · 0 评论 -
sql查询今天/昨天/7天/30天的数据
今天的所有数据:select * from表名where DateDiff(dd,datetime类型字段,getdate())=0昨天的所有数据:select * from表名where DateDiff(dd,datetime类型字段,getdate())=17天内的所有数据:select * from表名where DateDiff(dd,datetime类型字段,get...原创 2019-09-11 17:22:11 · 5609 阅读 · 1 评论 -
排序
1,全局排序(Order By) Order By:全局排序,一个Reducer2,按照别名排序 按照员工薪水的2倍排序:select ename, sal*2 twosal from emp order by twosal;3,多个列排序 按照部门和工资升序排序:select ename, deptno, sal from emp order b...原创 2019-08-11 18:26:09 · 88 阅读 · 0 评论 -
表的连接
1,内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来 select e.empno, e.ename, d.deptno from emp ejoin dept d on e.deptno= d.deptno;2,左外连接:JOIN操作符左边表中符合WHERE子句的所有记录将会被返回 select e.empno, e.ename, d...原创 2019-08-11 18:04:07 · 79 阅读 · 0 评论 -
hive查询时怎么显示字段名
进入hive cli后: set hive.cli.print.header=true;此时显示的字段名带表名,可读性很差,继续在hive cli中: set hive.resultset.use.unique.column.names=false;...原创 2019-05-15 15:10:53 · 4332 阅读 · 1 评论 -
hive开窗函数总结
1,sum()函数select cookieid,createtime,pv,sum(pv) over(PARTITION BY cookieid ORDER BY createtime) as pv1FROM test1;select cookieid,createtime,pv,sum(pv) over(PARTITION BY cookieid) as pv1FR...原创 2019-05-17 18:00:22 · 5243 阅读 · 1 评论 -
自定义函数
UDF:作用于单行数据并输出单行数据,大多数函数都属于这一类UDAF:作用于多行,输出一行,例如count、maxUDTA:作用于一行输出多行,例如exploadHive UDF编写过程:(1)继承org.apache.hadoop.hive.ql.UDF(2)需要实现evaluate函数;evaluate函数支持重载;(3)在hive的命令行窗口创建函数...原创 2019-08-03 09:06:28 · 86 阅读 · 0 评论 -
数据倾斜问题
数据倾斜1 空值数据倾斜场景:如日志中,常会有信息丢失的问题,比如全网日志中的user_id,如果取其中的user_id和bmw_users关联,会碰到数据倾斜的问题。解决方法1: user_id为空的不参与关联Select * From log aJoin bmw_users bOn a.user_id is not nullAnd a.user_id = b.use...原创 2019-08-03 18:11:42 · 150 阅读 · 0 评论 -
having与where不同点
1,where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据2,where后面不能写分组函数,而having后面可以使用分组函数3,having只用于group by 分组统计语句...原创 2019-08-11 17:58:22 · 308 阅读 · 0 评论 -
union all时数据出不来
union all时需要特别注意数据格式,数据出不来很可能是数据格式前后不一致,可考虑把int类型统一转化成string类型如:cast(round(sum(sale_amount),1) as string) as data2...原创 2019-10-08 13:23:39 · 2580 阅读 · 0 评论