随笔分类 -  Hive

摘要:系统内置函数 1. 查看系统自带的函数 hive> show functions; 2. 显示自带的函数的用法 hive> desc function upper; 3. 详细显示自带的函数的用法 hive> desc function extended upper; 自定义函数 占位符! 阅读全文
posted @ 2019-11-07 12:01 tunan96 阅读(124) 评论(0) 推荐(0)
摘要:1.函数说明 RANK(): 排序相同时会重复,总数不会变 DENSE_RANK(): 排序相同时会重复,总数会减少 ROW_NUMBER(): 会根据顺序计算 2.数据准备 name subject score 孙悟空 语文 87 孙悟空 数学 95 孙悟空 英语 68 大海 语文 94 大海 数 阅读全文
posted @ 2019-11-06 20:53 tunan96 阅读(263) 评论(0) 推荐(0)
摘要:当distribute by和sorts by字段相同时,可以使用cluster by方式。 cluster by除了具有distribute by的功能外还兼具sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。 1)以下两种写法等价 hive (default)> 阅读全文
posted @ 2019-11-06 20:50 tunan96 阅读(770) 评论(0) 推荐(0)
摘要:Distribute By: 在有些情况下,我们需要控制某个特定行应该到哪个reducer,通常是为了进行后续的聚集操作。distribute by子句可以做这件事。distribute by类似MR中partition(自定义分区),进行分区,结合sort by使用。 对于distribute b 阅读全文
posted @ 2019-11-06 20:49 tunan96 阅读(24483) 评论(0) 推荐(0)
摘要:每个MapReduce内部排序(Sort By) Sort By:对于大规模的数据集order by的效率非常低。在很多情况下,并不需要全局排序,此时可以使用sort by。 Sort by为每个reducer产生一个排序文件。每个Reducer内部进行排序,对全局结果集来说不是排序。 1.设置re 阅读全文
posted @ 2019-11-06 20:47 tunan96 阅读(1927) 评论(0) 推荐(0)
摘要:1.having与where不同点 (1)where后面不能写分组函数,而having后面可以使用分组函数。 (2)having只用于group by分组统计语句。 2.案例实操 (1)求每个部门的平均工资 hive (default)> select deptno, avg(sal) from e 阅读全文
posted @ 2019-11-06 20:45 tunan96 阅读(9411) 评论(0) 推荐(0)
摘要:典型的查询会返回多行数据。LIMIT子句用于限制返回的行数。 hive (default)> select * from emp limit 5; 阅读全文
posted @ 2019-11-06 20:43 tunan96 阅读(5206) 评论(0) 推荐(0)
摘要:对于非常大的数据集,有时用户需要使用的是一个具有代表性的查询结果而不是全部结果。Hive可以通过对表进行抽样来满足这个需求。 查询表stu_buck中的数据。 hive (default)> select * from stu_buck tablesample(bucket 1 out of 4 o 阅读全文
posted @ 2019-11-06 19:05 tunan96 阅读(327) 评论(0) 推荐(0)
摘要:1.相关函数说明 OVER(): 指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。 CURRENT ROW: 当前行 n PRECEDING: 往前n行数据 n FOLLOWING: 往后n行数据 UNBOUNDED: 起点,UNBOUNDED PRECEDING 表示从前面 阅读全文
posted @ 2019-11-06 12:55 tunan96 阅读(931) 评论(0) 推荐(0)
摘要:1.函数说明 EXPLODE(col): explode(col)接受一个数组(或一个map)作为输入,并将数组元素(map)作为单独的行输出。 UDTF可以在SELECT表达式列表中使用,也可以作为LATERAL VIEW的一部分使用。 LATERAL VIEW: 用在FROM语句后:LATERA 阅读全文
posted @ 2019-11-06 00:11 tunan96 阅读(4743) 评论(0) 推荐(0)
摘要:1.相关函数说明 CONCAT(string A/col, string B/col…): 返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, str1, str2,...): 它是一个特殊形式的 CONCAT()。 第一个参数剩余参数间的分隔符。 分隔符可 阅读全文
posted @ 2019-11-05 23:59 tunan96 阅读(3736) 评论(0) 推荐(0)
摘要:数据准备 name dept_id sex 悟空 A 男 大海 A 男 宋宋 B 男 凤姐 A 女 婷姐 B 女 婷婷 B 女 需求 求出不同部门男女各多少人。结果如下: A 2 1 B 1 2 创建本地emp_sex.txt,导入数据 [atguigu@hadoop102 datas]$ vi e 阅读全文
posted @ 2019-11-05 23:14 tunan96 阅读(575) 评论(0) 推荐(0)
摘要:函数说明: NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。 它的功能是如果value为NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回NULL。 数据准备: 创建员工表: 导入数据: 阅读全文
posted @ 2019-11-05 22:20 tunan96 阅读(2412) 评论(0) 推荐(0)
摘要:1 分桶表数据存储 分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分。 分桶是将数据集分解成更容易管理的若干部分的另一个技术。 分区针对的是数据的存储路径;分桶针对的是数据文件。 1. 阅读全文
posted @ 2019-11-05 22:14 tunan96 阅读(544) 评论(0) 推荐(0)
摘要:1、等值Join Hive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。 案例实操 (1)根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称 hive (default)> select e.empno, e.ename, d.deptno, d.dname 阅读全文
posted @ 2019-11-05 22:13 tunan96 阅读(215) 评论(0) 推荐(0)
摘要:GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。 案例实操: (1)计算emp表每个部门的平均工资 hive (default)> select t.deptno, avg(t.sal) avg_sal from emp t group by 阅读全文
posted @ 2019-11-05 22:13 tunan96 阅读(289) 评论(0) 推荐(0)
摘要:1、全局排序(Order By) Order By:全局排序,只有一个Reducer 1.使用 ORDER BY 子句排序 ASC(ascend): 升序(默认) DESC(descend): 降序 2.ORDER BY 子句在SELECT语句的结尾 3.案例实操 (1)查询员工信息按工资升序排列 阅读全文
posted @ 2019-11-05 22:13 tunan96 阅读(184) 评论(0) 推荐(0)
摘要:1、全表和特定列查询 创建部门表 create table if not exists dept( deptno int, dname string, loc int ) row format delimited fields terminated by '\t'; 创建员工表 create tab 阅读全文
posted @ 2019-11-05 22:12 tunan96 阅读(1059) 评论(0) 推荐(0)
摘要:1.使用WHERE子句,将不满足条件的行过滤掉 2.WHERE子句紧随FROM子句 3.案例实操 查询出薪水大于1000的所有员工 hive (default)> select * from emp where sal >1000; 1 比较运算符(Between/In/ Is Null) 1)下面 阅读全文
posted @ 2019-11-05 22:12 tunan96 阅读(857) 评论(0) 推荐(0)
摘要:hive (default)> drop table dept_partition; 阅读全文
posted @ 2019-11-04 23:47 tunan96 阅读(179) 评论(0) 推荐(0)