it-swarm.com.de

Hive Externe Tabelle - CSV-Datei - Kopfzeile

Hier ist die Hive-Tabelle, die ich erstellt habe:

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

Ich habe in meinem HDFS-Verzeichnis/exttable viele CSV-Dateien und jede CSV-Datei enthält auch die Kopfzeile. Bei Auswahlabfragen enthält das Ergebnis auch die Kopfzeile.

Gibt es in Hive eine Möglichkeit, die Kopfzeile oder die erste Zeile zu ignorieren?

14
Ramana

Wenn Sie Hive Version 0.13.0 oder höher verwenden, können Sie "skip.header.line.count" = "1" in den Tabelleneigenschaften angeben, um den Header zu entfernen. 

Ausführliche Informationen zum Patch finden Sie unter: https://issues.Apache.org/jira/browse/Hive-5795

22
Varun Gupta

sie können jetzt die Kopfzahl in Hive 0.13.0 überspringen. 

tblproperties ("skip.header.line.count"="1");
</ code>

19
tariqz

Da ist nicht. Sie können Ihre Dateien jedoch vorverarbeiten, um die erste Zeile zu überspringen, bevor Sie sie in HDFS laden. 

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

Alternativ können Sie es in die where-Klausel in Hive einbauen, um die erste Zeile zu ignorieren.

4
kgu87

Wenn Ihre Hive-Version tblproperties nicht unterstützt ("skip.header.line.count" = "1"), können Sie den folgenden UNIX-Befehl verwenden, um die erste Zeile (Spaltenkopf) zu ignorieren und sie dann in HDFS zu speichern.

 sed -n '2,$p' File_with_header.csv > File_with_No_header.csv
0
sras