为了账号安全,请及时绑定邮箱和手机立即绑定
  • 简单查询的优化,不会生成mapreduce作业,简单查询速度更快
    查看全部
  • 多种方式导入
    查看全部
  • oracle导入hive中
    查看全部
  • select e.ename from emp e where e.deptno in (select d.deptno from dept d where d.dname = 'SALES' or d.dname = 'ACCOUNTING');
    查看全部
    0 采集 收起 来源:Hive中的子查询

    2015-08-12

  • 自连接:通过表的别名将同一张表视为多张表
    查看全部
    0 采集 收起 来源:Hive-自连接

    2015-08-12

  • select d.deptno, d.dname, count(e.empno) ---count(e.empno)聚合函数 计数 from emp e, dept d where e.deptno = d.deptno group by d.deptno, d.dname; -- 没有出现在聚合函数中的列 等值连接:不成立,员工表中不存在的部门但是部门表中存在 应该修改为外连接的形式: 通过外连接可以将对连接条件不成立的记录仍然包含在最后的结果中。 左外连接: 右外连接: select d.deptno, d.dname, count(e.empno) from emp e right outer join dept d on(e.deptno = d.deptno) group by d.deptno, d.dname;
    查看全部
    0 采集 收起 来源:Hive外连接

    2015-08-12

  • 表连接:转换成MR任务 支持: 等值连接(若连接条件是=) select e.empno,e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno --- = 等值连接 不等值连接(> < !=) select e.empno,e.ename,e.sal,s.grade from emp e,salgrade s -- 涉及两张表 where e.sal between s.losal and s.hisal 外连接、自连接
    查看全部
  • 条件函数 coalesce:从左到右返回第一个不为null的值 select comm,sal,coalesce(comm, sal) from emp; case...when select ename, job, sal, case job when 'PRESIDENT' then sal+1000 when 'MANAGER' then sal+800 else sal+400 end from emp;
    查看全部
    0 采集 收起 来源:Hive条件函数

    2015-08-12

  • 日期函数 to_date : 取出一个字符串中日期的部分 year month day weekofyear datediff : 返回日期相差的天数 date_add date_sub
    查看全部
    0 采集 收起 来源:Hive日期函数

    2015-08-12

  • 收集函数:size(map(<key,value>,<key,value>)) 转换函数:cast 进行数据类型的转换 select cast(1 as float) select cast('2014-12-10' as date)
    查看全部
  • 字符函数: lower upper length concat substr trim lpad -- 左填充 rpad select lower(‘hello World’) select length('Hello World'), length('你好‘) *concat select concat('Hello','World'); *substr 求字符串的子串 substr(a, b): 从a中,第b位开始取,取右边所有的字符 select sub('Hello World', 3); substr(a, b, c): 从a中,第b位开始取,取c个字符 select substr('Hello World', 3, 4); *trim 去掉前后的空格 *lpad 左填充 *rpad 右填充 select lpad('abdc', 10, '*'), rpad('abdc', 10, '*');
    查看全部
    0 采集 收起 来源:Hive字符函数

    2015-08-12

  • hive的函数:内置函数和自定义函数 内置函数: 数学函数:round、ceil、floor select round(45.926, 2),round(45.926, 1),round(45.926, 0),round(45.926, -1),round(45.926, -2) round(45.926, 2) 表示对45.926进行四色五入,保留两位小数; round(45.926, -2)
    查看全部
    0 采集 收起 来源:Hive数学函数

    2015-08-12

  • 在查询中使用排序: select empno, ename, sal from emp order by sal; -- 默认升序 排序操作,是属于高级操作,都转换成MR操作 select empno, ename, sal from emp order by sal desc; --降序 order by 后跟内容:列、表达式、别名、序号 select empno, ename, sal, sal*12 from emp order by sal*12 desc; -- 年薪的表达式 select empno, ename, sal, sal*12 annsal from emp order by annsal; -- 别名 select empno, ename, sal, sal*12 from emp order by 4 desc; -- 4代表年薪sal*12 序号,但需要设置参数: set hive.groupby.orderby.position.alias=true;(使用序号的前提条件) select empno, ename, sal, comm from emp order by comm; ---null是如何排序的? 升序null排在前面,反之--
    查看全部
  • 在查询中使用过滤:where条件 selec * from emp where deptno=10; --- 开启了fecth task 功能 select * from emp where enmae='KING'; select * from emp where enmae='king'; --- 严格区分字符串的大小写的 select * from emp where deptno=10 and sal<2000; --- 使用and连接 具体的执行过程:执行计划--->explain 读的顺序从右往左 从下往上 ---模糊查询 select empno,ename,sal from emp where name like 'S%'; select empno,ename,sal from emp where name like '%\\_%'; -- _代表任意的字符,本身需要用转义字符
    查看全部
  • select *from emp; ---并没有转成mapreduce查询,把hdfs中对应的文件直接加载 select empno,ename,sal from emp; --- 转换层mapreduce任务 不能对表进行全表扫描 需要对数据进行分析 速度慢的原因(1)和机器的配置有关(2)hive操作数据仓库,在海量数据下。。。 支持算术表达式: select empno,ename,sal,sal*12 from emp; select empno,ename,sal,sal*12, comm,sal*12+comm from emp; 涉及到NULL值,表达式中含有NULL值,整个表达式都是NULL值 把奖金为空(NULL)转换为0--> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp; 查询奖金为NULL的员工: select * from emp where comm is null; 判断一个值是否为NULL,不能用= != 用is 使用distinct 去掉重复的记录 select distinct depno from emp; select distinct depno,job from emp; //组合去重 Fetch Task功能: 不使用MR作业来查询,hive命令行中执行:set hive.fetch.task.conversion = more; 配置hive的参数并开启hive:hive --hiveconf hive.fetch.task.conversion = more 修改xml配置,参数如图所示:hive-site.xml
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Hadoop体系结构的扩展内容 1、熟练掌握Hadoop的体系结构,尤其是HDFS 2、熟悉Java编程 3、了解Linux的基本操作 对Hive还不了解的童鞋,最好先去《Hive旅程之初识印象》修炼一下,再回来学习
老师告诉你能学到什么?
1、Hive数据的导入 2、Hive的数据查询 3、Hive的内置函数 4、Hive的表连接 5、Hive的子查询 6、Hive的客户端操作 7、开发Hive的自定义函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!