- 直接进入hive命令
hive
- 查看所有数据库
show databases;
- 查看当前所在数据库
select current_database();
- 切换数据库
use test; // test是数据库名
- 创建数据库
create databases if not extists test; // test是数据库名
create databases if not extists test location '/temp/data'; // location 作用是指定数据库在HDFS中的目录,这里会存放表数据
- 删除数据库
drop database test; // 只能删除空的
drop database test cascade; // 级联删除
drop database if exists test cascade; // 级联删除
- 创建简单外表
create external table if not exists user(user_id string);
表所在的目录为: /temp/data/user
- 表创建完成后往里面导入数据
load data inpath '/user/data/users.csv' overwrite into table user; // 文件是存在HDFS中的,完成后该文件会被移动到'/temp/data/user'目录下
load data local inpath '/root/user.csv' into table user; // 这是把本地文件导入
- 查看所在数据库中的所有表
show tables;
10.删除数据库中的表
drop table user;
- 查看一下刚才表中的数据
select * from user limt 10;
- 统计一下行数
select count(*) from user;
结果
OK
15399
Time taken: 18.656 seconds, Fetched: 1 row(s)
- 做一个单词统计
1. 创建一张表
create external table if not exists wctest(linestr string);
2. 往表中导入数据
load data inpath '/user/guoxing/data/wctext.txt' overwrite into table wctest;
3. 单词统计的语句
select
word, count(*) as wcount
from wctest
lateral view explode(split(linestr, ' ')) t as word
group by word
order by wcount desc
limit 10;
结果
OK
1076
| 113
the 56
to 41
a 37
of 23
for 19
be 19
<!-- 19
in 17
Time taken: 17.094 seconds, Fetched: 10 row(s)
注:在命令行执行hql文件
hive> source /root/wc.hql;
Query ID = root_20180921095521_1f4bafba-b914-4926-82f4-50910fdc0d48
Total jobs = 1
Launching Job 1 out of 1
Status: Running (Executing on YARN cluster with App id application_1537496206023_0019)
--------------------------------------------------------------------------------
VERTICES STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
--------------------------------------------------------------------------------
Map 1 .......... SUCCEEDED 1 1 0 0 0 0
Reducer 2 ...... SUCCEEDED 1 1 0 0 0 0
Reducer 3 ...... SUCCEEDED 1 1 0 0 0 0
--------------------------------------------------------------------------------
VERTICES: 03/03 [==========================>>] 100% ELAPSED TIME: 8.53 s
--------------------------------------------------------------------------------
OK
1076
| 113
the 56
to 41
a 37
of 23
for 19
be 19
<!-- 19
in 17
Time taken: 9.916 seconds, Fetched: 10 row(s)
其他的一些命令或操作放到这
- 不直接进入hive访问数据库
hive -e "show databases";
hive -e "select * from lines limit 10";
hive -f wc.hql; // wc.hql文件中写的是hql语句
- 其他的DDL语句
明天写~~~
网友评论