これはなに?
Athenaを利用して、S3のCSVファイルを読み込むときにヘッター行をスキップするTips
目次
方法
AthenaでCreateTableする際に、TBLPROPERTIES オプションで 'skip.header.line.count'='1' を指定する。
<例>
CREATE EXTERNAL TABLE `<TABLE NAME>`( `id` string, `name` string, `value` bigint) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://<S3 BACKET NAME>/<PATH>' TBLPROPERTIES ( 'has_encrypted_data'='false', 'skip.header.line.count'='1', )
動作確認
テストデータ
ヘッダー行が入ったCSVファイルを二つS3上に配置しています。
・test1.csv
ID,Name,Value 1,aaa,100 2,bbb,200 3,ccc,300
・test2.csv
ID,Name,Value 4,hhh,700 5,hhh,500 6,eee,100
ヘッダー行をスキップしていないテーブルの場合
1行目、5行目にヘッダー行が入っています。
ヘッダー行をするテーブルの場合
ヘッダー行が入っていないきれいなテーブルになっています。
最後に
データ分析するのにAthena超便利なので使い倒していきたい。