加载到普通表
可以将本地文本文件内容批量加载到Hive表中,要求文本文件中的格式和Hive表的定义一致,包括:字段个数、字段顺序、列分隔符都要一致。
load data local inpath '/home/hadoop/dealerinfodata.txt' overwrite into table dealer_info;
local:表示数据文件在本地,如果数据文件在HDFS,则可以去掉local
overwrite:表示如果hive表中存在数据,就会覆盖掉原有的数据,如果省略掉该关键字,则默认是追加数据。
加载到分区表
load data local inpath '/home/hadoop/actionlog.txt' overwrite into table dealer_action_log PARTITION(dt='2016-08-19');
- partition:指定数据放入的分区
加载到分桶表
首先创建普通临时表
create table dealer_leads_tmp
(
leads_id string,
dealer_id string,
user_id string,
user_phone string,
user_name string,
create_time string
)
row format delimited fields terminated by ','
stored as textfile;
将数据导入临时表
load data local inpath '/home/hadoop/lead.txt' overwrite into table dealer_leads_tmp;
导入分桶表
set hive.enforce.bucketing=true;
insert overwrite table dealer_leads select * from dealer_leads_tmp;
set hive.enforce.bucketing=true;是设置启用分桶