【Tips】AWS Athena のクエリ結果をまた Athenaのテーブルに入れる

概要

ahenaのクエリ結果は、ヘッダー付き、ダブルクオート付きで出力される。 そのままS3に置いて ahena のテーブル作ると ヘッダーとダブルクオートが取り込まれてしまう。

解決策

以下の create 文で両方回避できる

CREATE EXTERNAL TABLE IF NOT EXISTS athena_test.pet_data (
  `date_of_birth` date,
  `pet_type` string,
  `pet_name` string,
  `weight` double,
  `age` int
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'quoteChar' = '"',
  'field.delim' = ','
) 
LOCATION 's3://test-athena-linh/pet/'
TBLPROPERTIES (
  'has_encrypted_data'='false', 
  'skip.header.line.count'='1'
);
  • ROW FORMAT のプロパティ部分で、クオート文字を指定
  • TBLPROPERTIES で スキップする行番号を指定

参考