Hive数据导入方式整理

参考文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual

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']

创建普通表:

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (
  c1 string,
  c2 string)
row format delimited
fields terminated by '\u0001'
STORED AS textfile;

注:

指定EXTERNAL为外部表

hive 默认分隔符为‘\001’

不指定location 默认存储位置为‘/user/hive/warehouse’目录下

数据导入:

load data [local] inpath [local_path]&[hdfs_path] overwrite into table db_name.table_name;
若文件上传至hdfs load 操作会删除源文件,相当于mv操作

创建分区表:

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (
  c1 string,
  c2 string)
partitioned by (c3 string)
row format delimited
fields terminated by '\u0001'
STORED AS textfile;

数据导入

load data [local] inpath [local_path]&[hdfs_path] overwrite into table db_name.table_name partition (c3=c3_value);
hdfs目录文件结构:
hdfs://nameservice1/user/hive/warehouse/db_name.db/table_name/c3=c3_value/

Like建表:(表结构)

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  LIKE existing_table_or_view_name
  [LOCATION hdfs_path];

As建表:(结构&数据)

create table table_name
as 
select * from example_table_name;

查询导入

insert into table table_name select col_name... from example_table;
insert overwrite table table_name select col_name... from example_table;

动态分区导入后续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值