趣文网,分享全网好句子、好文章!

Hive的导入导出和常用过滤语句的学习

时间:2023-06-15 04:02:01

相关推荐

Hive的导入导出和常用过滤语句的学习

数据的导入

load data [local]

创建数据表

加载数据

load data local inpath "/data/hivetest/stu_info_two" into table stu_info;

加载HDFS数据,移动数据文件到表对应的目录

我们先清空数据truncate table stu_info;

将数据加载到HDFS上

hdfs dfs -put /data/hivetest/stu_info_local_format /hivetestdata/

Hive中查看下

然后加载数据

load data + overwrite 覆盖数据

为了区分我们新创建数据库

可以覆盖数据

3、子查询 as select

create table tb_stu_as_test_stu as select * from stu_info;

适合数据查询结果的保存

4、insert 方式

插入数据的表必须要存在

我们创建新表

我们如果再执行一遍,数据就会增多(追加)

执行覆盖(原先数据变了)

在关系型数据库插入一条数据

insert into table table_name(id,name) values(1,"test");

Hive也支持插入

insert into table hive_table_name(id,name) values(1,"test");

注意:这种方式适合数据非常小的情况下去使用,如果大数据量,避免这种操作,如果执行show tables会发现一个临时表values__tmp__table__1,说明SQL这种方式用在Hive中会用临时表过渡。

5、建表的时候用location指定数据文件的方式

数据的导出

官网

INSERT OVERWRITE [LOCAL] DIRECTORY directory1 方式(local的方式和插入一样一个是本地一个是HDFS)

Insert overwrite local directory "/data/hivetest/export_local_stu_info" select * from stu_info;

我们查看数据

添加语句可以指定分隔符 ROW FORMAT DELIMITED FIELDS TERMINATED BY " "

语句:

Insert overwrite local directory "/data/hivetest/export_local_stu_info" ROW FORMAT DELIMITED FIELDS TERMINATED BY " " select * from stu_info;

数据有空格了

如果不使用local的话就是将输入导入到HDFS中,就可以用hdfs命令下载文件了

bin/hive -e 或者 -f + >> 或者 >

hive -e "select * from db_import_export.stu_info" >> /data/hivetest/export_local_stu_info_1.txt;

可以使用sqoop等工具

我们使用之前的数据库

select * from emp where sal > 3000;

select * from emp limit 5;

select distinct deptno from emp;

select * from emp where sal between 1300 and 3000;

select * from emp where sal >=1000 and sal <= 3000;

select empno,ename from emp where comm is null;

select empno,ename from emp where comm is not null;

聚合函数

count()、max()、min()、sum()、avg()、group by

如果我们加一个字段

select deptno,max(sal) from emp ;

有错误

select中出现的字段,需要用聚合函数包裹或者放入group by当中

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

select max(deptno) ,max(sal) from emp ;

join

left join 、right join、inner join(等值)、full join(全)

新创建一个库

创建两张表

我们准备两个数据

等值join

select a_test.id,a_test.name,b_test.id,b_test.adress from a a_test join b b_test on a_test.id=b_test.id;

左join,以左表为基准,没有匹配到的字段为NULL

select a_test.id,a_test.name,b_test.id,b_test.adress from a a_test left join b b_test on a_test.id=b_test.id;

右join,以右表为基准,没有匹配到的字段为NULL

select a_test.id,a_test.name,b_test.id,b_test.adress from a a_test right join b b_test on a_test.id=b_test.id;

全join,所有的字段都会出现,没有匹配到的字段为NULL

select a_test.id,a_test.name,b_test.id,b_test.adress from a a_test full join b b_test on a_test.id=b_test.id;

不写连接条件,两张表做笛卡尔积

select a_test.id,a_test.name,b_test.id,b_test.adress from a a_test join b b_test ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. 时光,坠成遍地殇。2023-12-06 20:00时光,坠成遍地殇。[天津市网友]203.57.109.237
    Hive的导入导出和常用过滤语句确实是Hive数据处理的重要基础,掌握了这些知识就能更轻松地操作数据了。
    顶6踩0
  2. 清清的河2023-09-10 12:01清清的河[火星网友]45.121.176.9
    学习Hive的导入导出和常用过滤语句对数据处理有很大帮助,非常实用!
    顶0踩0
相关阅读
「翻译」Python PEP8编码规范(中文版)

「翻译」Python PEP8编码规范(中文版)

Python的C语言实现的C代码规范请查看相应的PEP指南1

2023-11-28

好的开头是成功的一半——作文开头的多种方式

好的开头是成功的一半——作文开头的多种方式

二、作文开头的基本方式开门见山式:开头直截了当,切入要旨,亮明主题

2023-08-17

部编版小学语文《司马光》说课稿

部编版小学语文《司马光》说课稿

尊敬的评委老师大家好,我是小学语文组6号考生,今天说课的题目是司马光,下面我讲从教材、教学目标、教学过程等几个方面展开我的说课

2023-09-13

外研版小学英语五年级上册module3 unit1这样设计更有趣!

外研版小学英语五年级上册module3 unit1这样设计更有趣!

Module 3Unit1 Where did you go?题材Amy 和Daming 讨论有关上周末做了什么、去了哪里、怎样去的以及在游览地做过的事情。教学目标询问和介绍去

2023-07-20

海安市大公镇“基于学情 有效教学”小学英语教研活动

海安市大公镇“基于学情 有效教学”小学英语教研活动

打开深秋的大门,气温大幅度下降,观望四周,冬天的脚步近了,这一切丝毫没有阻挡住大公镇小英人学习的脚步。初冬的校园,温柔可爱。为了促进全镇小学英

2023-01-02