hive 向表中导入数据时忽略首行
问题
在使用load data inpath
将CSV
文件导入到hive
表时,发现列头被当做数据导入到hive
表中,如下图:
原数据格式
hive建表语句
create table hive_movies
(
rank int,
src string,
name string,
box_office string,
avg_price int,
avg_people int,
begin_date string
) row format delimited fields terminated by ',';
导入数据
load data inpath '/input/movies.csv' overwrite into table hive_movies;
数据展示
解决方案
向表中load数据过滤首行
TBLPROPERTIES ('skip.header.line.count'='1')
-
已建表执行
alter table hive_movies set TBLPROPERTIES ('skip.header.line.count'='1');
-
新建表
create table hive_movies ( rank int, src string, name string, box_office string, avg_price int, avg_people int, begin_date string ) row format delimited fields terminated by ',' TBLPROPERTIES ('skip.header.line.count'='1');
-
重新执行数据导入
load data inpath '/input/movies.csv' overwrite into table hive_movies;
注:执行
load data inpath
时,原文件会被删除
-
效果