あゝお腹いっぱい、次なに食べよ

機械学習とかAWSとかiPadProとかGalaxynote8とか

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

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

import pyarrow as pa

import pyarrow.parquet as pq

import pandas as pd


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にいれて リトライ組み込んでます