load 加载数据
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)
| (1)load data:表示加载数据。
(2)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。
(3)inpath:表示加载数据的路径。
(4)overwrite:表示覆盖表中已有数据,否则表示追加。
(5)into table:表示加载到哪张表。
(6)partition:表示上传到指定分区。
(1)加载本地文件到hive
hive (default)>
load data local inpath "/home/data/demo.txt" overwrite into table hive.demo;
| (2) 加载HDFS文件到hive中
hive (default)>
hadoop fs -put /home/data/demo.txt /user/data
;
hive (default)>
load data inpath "/user/data/demo.txt" overwrite into table hive.demo;
|
insert 插入数据
1)根本模式插入数据
hive (default)>
insert overwrite table hive.demo._insert
select
id,
name
from hive.demo;
hive (default)> insert into table hive.demo._insert values(1,'wanger'),(2,'zhaoliusan')
;
| 留意:insert导出时,hive会自动创建导出目次,但是由于是overwrite,所以导出路径肯定要写准确,否则存在误删数据的可能。
2)根据查询效果插入数据
hive (default)> insert overwrite table hive.demo2
select
id,
name
from hive.demo
;
| 根据查询效果创建表(查询的效果会添加到新创建的表中)。
hive (default)>
create table if not exists hive.demo3
as select id, name from hive.demo
;
| Import&Export
export下令能够导出一张表或分区的数据和元数据信息到一个输出位置,而且导出数据能够被移动到另外一个hadoop集群或hive实例,而且能够经过import下令导入数据。一般用在数据迁徙的场景。
具体语法:
EXPORT TABLE tablename [PARTITION (part_column="value"[, ...])]
TO 'export_target_path' [ FOR replication('eventid') ]
IMPORT [[EXTERNAL] TABLE new_or_original_tablename [PARTITION (part_column="value"[, ...])]]
FROM 'source_path'
[LOCATION 'import_target_path']
| 数据到指定Hive表中
留意:先用export导出后,再将数据导入。而且由于export导出的数据内里包含了元数据,因此import要导入的表不可以存在,否则报错。
导出到HDFS
-- 导出stu1.emp1到hdfs下的/user/data/export/emp
export table stu1.emp1 to '/user/data/export/emp';
-- 将/user/data/export/emp文件导入到stu1.emp2
import table stu1.emp2 from '/user/data/export/emp';
| Export和Import重要用于两个Hadoop平台集群之间Hive表迁徙,不能直接导出到本地。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |