Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY 原创

章节内容

上一节我们完成了:

  • 启动Hive
  • 测试Hive
  • 修改配置
  • 简单测试

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!
请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!

但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

在这里插入图片描述

数据导出

默认格式

将查询结果导出到本地

insert overwrite local directory '/opt/wzk/hive_test/tabC'
select * from tabC;

在这里插入图片描述
我们查看目录,已经导出了:
在这里插入图片描述
使用 vim 工具查看具体内容:

5^Awangwu^ABJ^A202407
4^Alishi^ASH^A202407
3^Azhangsan^ATJ^A202407

自定格式

我们发现,默认格式导出的有一些符号,我们可以指定符号:

insert overwrite local directory '/opt/wzk/hive_test/tabC2'
row format delimited fields terminated by ' '
select * from tabC;

在这里插入图片描述
同样,我们使用 vim 工具打开查看情况:

5 wangwu BJ 202407
4 lishi SH 202407
3 zhangsan TJ 202407

导出至HDFS

insert overwrite directory '/wzk/hive_test/tabC3'
row format delimited fields terminated by ' '
select * from tabC;

执行结果如下:
在这里插入图片描述
我们查看 HDFS 内容,可以看到:
在这里插入图片描述

HQL

新建文件

新建一个文本文件,写入如下的内容,用作后续的测试

7369,SMITH,CLERK,7902,2010-12-17,800,,20
7499,ALLEN,SALESMAN,7698,2011-02-20,1600,300,30
7521,WARD,SALESMAN,7698,2011-02-22,1250,500,30
7566,JONES,MANAGER,7839,2011-04-02,2975,,20
7654,MARTIN,SALESMAN,7698,2011-09-28,1250,1400,30
7698,BLAKE,MANAGER,7839,2011-05-01,2850,,30
7782,CLARK,MANAGER,7839,2011-06-09,2450,,10
7788,SCOTT,ANALYST,7566,2017-07-13,3000,,20
7839,KING,PRESIDENT,,2011-11-07,5000,,10
7844,TURNER,SALESMAN,7698,2011-09-08,1500,0,30
7876,ADAMS,CLERK,7788,2017-07-13,1100,,20
7900,JAMES,CLERK,7698,2011-12-03,950,,30
7902,FORD,ANALYST,7566,2011-12-03,3000,,20
7934,MILLER,CLERK,7782,2012-01-23,1300,,10

上传文件

将文件上传至 HDFS

hdfs dfs -put test02.txt /wzk/hive_test/test02.txt

创建新表

CREATE TABLE emp (
  empno int,
  ename string,
  job string,
  mgr int,
  hiredate DATE,
  sal int,
  comm int,
  deptno int
)row format delimited fields terminated by ",";

我们将数据加载到Hive中

LOAD DATA LOCAL INPATH '/opt/wzk/hive_test/test02.txt'
INTO TABLE emp;

在这里插入图片描述

全表查询

SELECT * FROM emp;

可以看到数据已经按照我们的想法导入了:
在这里插入图片描述

部分字段查询

这与我们平常写SQL基本是一样的:

select ename, sal, comm from emp;

在这里插入图片描述

函数查询

select sum(sal) from emp;
select max(sal) from emp;
select min(sal) from emp;
select avg(sal) from emp;

在这里插入图片描述

限制条数

select * from emp limit 3;

在这里插入图片描述

WHERE

select * from emp
where sal > 2000;

在这里插入图片描述

逻辑运算

select null=null;
select null==null;
select null<=>null;
select * from emp where comm is null;
select * from emp where deptno in (20, 30);

GROUP BY

select deptno, avg(sal)
from emp
group by deptno;

在这里插入图片描述

ORDER BY

select * from emp order by deptno;

在这里插入图片描述

posted @   武子康  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示