BETA

S3のCSVファイルを Parquetに 変換する

投稿日:2020-08-22
最終更新:2020-08-20

お疲れ様です、sysopjpです
掲題の 毎分あがってくるCSVをちまちま parquetにするやつになります

import pyarrow as pa  

import pyarrow.parquet as pq  

import pandas as pd  
import boto3  

s3 = boto3.client('s3')  

def lambda_handler(event, context):  
    bucket = event['bucket']  
    key = event['key']  
    s3path = 's3://{0}/{1}'.format(bucket, key)  
    df = pd.read_csv(s3path,  
                         names=['idx','col','umn'], dtype=str)  
    table = pa.Table.from_pandas(df)  
    # Arrow Table -> Parquet  
    tmpfilename = '/tmp/{0}'.format(key)  
    pq.write_table(table, tmpfilename, compression='gzip')  
    s3.upload_file(tmpfilename, 'mybucket', key)  

S3 の event からこのLambdaが呼ばれるようにしておきます
ちなみに、S3の伝搬が終わっておらず

よくfile not found するので DLQで
リトライできるように適当に組み込んでおいてください。

自分は SQSにいれて リトライ組み込んでます

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@sysopjp のブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう