web-dev-qa-db-ja.com

Hive外部テーブル-CSVファイル-ヘッダー行

以下は、私が作成したHiveテーブルです。

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

私のHDFSロケーション/ exttableには、多くのCSVファイルがあり、各CSVファイルにはヘッダー行も含まれています。選択クエリを実行すると、結果にはヘッダー行も含まれます。

Hiveにヘッダー行または最初の行を無視できる方法はありますか?

16
Ramana

Hiveバージョン0.13.0以降を使用している場合は、テーブルプロパティで「skip.header.line.count」= "1"を指定してヘッダーを削除できます。

パッチの詳細については、以下を参照してください。 https://issues.Apache.org/jira/browse/Hive-5795

23
Varun Gupta

hive 0.13.0でヘッダーカウントをスキップできるようになりました。

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

存在しない。ただし、HDFSに読み込む前に、ファイルを前処理して最初の行をスキップすることができます-

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

または、Hiveのwhere句に組み込み、最初の行を無視できます。

3
kgu87

Hiveバージョンがtblproperties( "skip.header.line.count" = "1")をサポートしていない場合、以下のunixコマンドを使用して最初の行(列ヘッダー)を無視し、HDFSに配置できます。

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