Hive3:数据的加载与导出

一、加载数据

在创建表之后,表中没有数据,我们不可能insert存入数据。

而是,通过数据加载,将HDFS中的数据关联到Hive表中。

建表

sql 复制代码
CREATE TABLE myhive.test_load(
  dt string comment '时间(时分秒)', 
  user_id string comment '用户ID', 
  word string comment '搜索词',
  url string comment '用户访问网址'
) comment '搜索引擎日志表' 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

SQL语法

sql 复制代码
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename;

OVERWRITE:覆盖原表数据。

方式1、加载本地数据

这种方式,是先将本地数据上传HDFS文件系统中,然后,关联到Hive表中。

这里的本地,是指安装Hive的服务器。

SQL

sql 复制代码
LOAD DATA LOCAL INPATH '/home/atguigu/search_log.txt' INTO TABLE myhive.test_load;

方式2、加载HDFS数据

这种方式,是将HDFS文件系统重其他目录的数据,MoveHive表对应的目录中,从而,关联到Hive表中。

SQL

此时inpath对应的是HDFS中文件的路径。

sql 复制代码
LOAD DATA INPATH '/tmp/search_log.txt' INTO TABLE myhive.test_load;


加载后,源文件就不在了。

方式3、INSERT SELECT加载数据

这个方式,和MySQL语法差不多

sql 复制代码
INSERT [OVERWRITE | INTO] TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) 
[IF NOT EXISTS]] select_statement1 FROM from_statement;

SELECT查询语句的结果插入到其它表中,被SELECT查询的表可以是内部表或外部表。
注意:列字段要对齐,否则数据错乱。

示例:

sql 复制代码
INSERT INTO TABLE tbl1 SELECT * FROM tbl2;
INSERT OVERWRITE TABLE tbl1 SELECT * FROM tbl2;

二、导出数据

基本语法:

sql 复制代码
insert overwrite [local] directory 'path' select_statement1 FROM from_statement;

方式1、INSERT OVERWRITE

将查询的结果导出到本地 - 使用默认列分隔符

sql 复制代码
insert overwrite local directory '/home/hadoop/export1' 
select * from test_load ;

将查询的结果导出到本地 - 指定列分隔符

sql 复制代码
insert overwrite local directory '/home/hadoop/export2' 
row format delimited fields terminated by '\t' 
select * from test_load;

将查询的结果导出到HDFS文件系统中(不带local关键字)

sql 复制代码
insert overwrite directory '/tmp/export' 
row format delimited fields terminated by '\t' 
select * from test_load;

方式2、HIVE SHELL

基本语法:(hive -f/-e 执行语句或者脚本 > file

bash 复制代码
bin/hive -e "select * from myhive.test_load;" > /home/hadoop/export3/export4.txt
bin/hive -f export.sql > /home/hadoop/export4/export4.txt

注意:shell中的重定向符号>只能捕获程序的标准输出

相关推荐
磁场转动100万匹44 分钟前
大数据入门:Hadoop 与 MapReduce 学习路线
大数据·hadoop·mapreduce
崖边看雾1 小时前
Hadoop —— HDFS 写数据流程
大数据·hadoop·hdfs
陈年老古董1 小时前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习
崖边看雾2 小时前
Hadoop —— HDFS 读流程
大数据·hadoop·hdfs
磁场转动100万匹2 小时前
HDFS 与 MapReduce 核心原理详解
hadoop·hdfs·mapreduce
BYSJMG21 小时前
计算机毕设选题推荐:基于大数据的公共交通运营数据分析与可视化,Spark+K-Means聚类城市运营模式
大数据·hadoop·信息可视化·数据分析·spark·kmeans·课程设计
Gl�ria1 天前
Hadoop MapReduce/Hive 数据倾斜完整排查
hive·hadoop·mapreduce
Gl�ria1 天前
Hadoop Hive 和 YARN 的关系
数据仓库·hive·hadoop
pjj198542 天前
Hadoop-python中使用大数据
大数据·hadoop·python
计算机源码社3 天前
分享一个基于大数据的跨平台内容生态画像与互动等级分析系统,基于Hadoop+Spark的社交媒体互动数据可视化大屏分析
大数据·hadoop·python·机器学习·数据挖掘·spark·毕业设计