问题
在使用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时,原文件会被删除 -
效果
