my opinion is my own

awswranglerを使用してCSV to Parquet

テスト用CSVの作成

cat << EOF > testdata.csv
id,name,comment
"1","test1","ゎぶばあちあぬナクバ"
"2","test2","がマうひバぴじクハぺ"
"3","test3","スみでてゥあッあけげ"
EOF

S3のフォルダのクリーンアップ

awswranglerのオプションでクリーンアップ出来たと思うが、手動で事前に削除

aws s3 rm s3://202110test/pq/

CSV→Parquetに変換

import awswrangler as wr
import pandas as pd

#変換
df = pd.read_csv('./testdata.csv')

wr.s3.to_parquet(
    df=df,
    path='s3://202110test/pq/',
    dataset=True,
    partition_cols=['id']
)

Athenaでデータベース、データカタログの作成

コンソールから実施を想定

DROP TABLE `catalogtest`.`testdata`;

CREATE EXTERNAL TABLE `catalogtest`.`testdata`(
  `id` string, 
  `name` string, 
  `comment` string
  )
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://202110test/pq/'
TBLPROPERTIES (
  'classification'='parquet', 
  'compressionType'='none', 
  'objectCount'='1', 
  'typeOfData'='file')

MSCK REPAIR TABLE catalogtest.testdata;

select name,comment from testdata;

athenacliを使用してAthenaのクエリを実行

athenacli catalogtest -e 'select name,comment from testdata'
[ec2-user@ip-10-0-1-31 pyarrow]$ athenacli catalogtest -e 'select name,comment from testdata'
name,comment
test1,ゎぶばあちあぬナクバ
test3,スみでてゥあッあけげ
test2,がマうひバぴじクハぺ
---

関連しているかもしれない記事


#Athena #Glue