Hive外部表-CSV文件 - 标题行

时间:2013-05-09 08:09:12

标签: hive

以下是我创建的蜂巢表:

CREATE EXTERNAL TABLE Activity (
  column1 type, </br>
  column2 type
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/exttable/';

在我的HDFS位置/表格中,我有很多CSV文件,每个CSV文件也包含标题行。当我在进行选择查询时,结果也包含标题行。

在HIVE中我们可以忽略标题行或第一行吗?

6 个答案:

答案 0 :(得分:23)

如果您使用的是Hive版本0.13.0或更高版本,则可以在表属性中指定“skip.header.line.count”=“1”以删除标题。

有关该补丁的详细信息,请参阅:https://issues.apache.org/jira/browse/HIVE-5795

答案 1 :(得分:20)

您现在可以跳过配置单元0.13.0中的标题计数。


tblproperties ("skip.header.line.count"="1");

答案 2 :(得分:3)

没有。但是,您可以在加载到HDFS之前预先处理文件以跳过第一行 -

tail -n +2 withfirstrow.csv > withoutfirstrow.csv

或者,您可以将其构建到HIVE中的where子句中,以忽略第一行。

答案 3 :(得分:0)

如果你的hive版本不支持tblproperties(&#34; skip.header.line.count&#34; =&#34; 1&#34;),你可以使用下面的unix命令来忽略第一个line(列标题),然后将其放入HDFS。

MenuBar

答案 4 :(得分:0)

假设您要加载位于/home/test/que.csv下方的csv文件

1,TAP (PORTUGAL),AIRLINE
2,ANSA INTERNATIONAL,AUTO RENTAL
3,CARLTON HOTELS,HOTEL-MOTEL

现在,我们需要在HDFS中创建一个保存此数据的位置。

hadoop fs -put /home/test/que.csv /user/mcc

下一步是创建表。有两种类型可供选择。请参阅this以选择一个。

  

外部表示例。

create external table industry_ 
(
MCC string ,
MCC_Name string,
MCC_Group string
)       
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/mcc/'
tblproperties ("skip.header.line.count"="1");

答案 5 :(得分:-1)

要从csv文件中删除标头,请使用:

sed -i 1d filename.csv