在hive表中加载时跳过第一行csv

时间:2013-12-28 10:14:28

标签: hadoop hive hiveql

Hello Friends,

我在hive中使用以下命令创建了表 -

CREATE TABLE db.test 
  ( 
     fname STRING, 
     lname STRING, 
     age   STRING, 
     mob   BIGINT 
  ) row format delimited fields terminated BY '\t' stored AS textfile; 

现在从文件加载表中的数据,我使用以下命令 -

load data local inpath '/home/cluster/TestHive.csv' into table db.test;

问题是,所有行都被插入,我不想要第一行,因为它只包含列名。

请建议我跳过第一行的方法。

提前致谢。

3 个答案:

答案 0 :(得分:41)

要获得此功能,您可以使用hive的属性 TBLPROPERTIES(“skip.header.line.count”=“1”)
您也可以参考示例 -

CREATE TABLE temp 
  ( 
     name STRING, 
     id   INT 
  ) 
row format delimited fields terminated BY '\t' lines terminated BY '\n' 
tblproperties("skip.header.line.count"="1"); 

答案 1 :(得分:3)

仅适用于已使用标题创建表格的用户。这是相同的alter命令。

ALTER TABLE tablename SET TBLPROPERTIES ("skip.header.line.count"="1");

答案 2 :(得分:0)

请勿在同一CLI命令中混用双引号和单引号:

CREATE TABLE db.test 
  ( 
     fname STRING, 
     lname STRING, 
     age   STRING, 
     mob   BIGINT 
  ) row format delimited fields terminated BY '\t' tblproperties('skip.header.line.count'='1') stored AS textfile; 

否则,蜂巢加载NULL值。