以下是我创建的蜂巢表:
CREATE EXTERNAL TABLE Activity (
column1 type, </br>
column2 type
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/exttable/';
在我的HDFS位置/表格中,我有很多CSV文件,每个CSV文件也包含标题行。当我在进行选择查询时,结果也包含标题行。
在HIVE中我们可以忽略标题行或第一行吗?
答案 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