底辺

ゑ?

pandasのread_parquetでS3の認証を通す

pandasのread_parquetでS3のparquetファイルを読み込むときに指定のプロファイルを使いたい場合。

→例えば以下のようにstorage_options引数が使える。これには以下のように"profile"をkeyに含むdictを渡す

import pandas as pd

s3_path = "s3://your-bucket/path/to/your-file.parquet"
storage_options = {"profile": "your_profile_name"}
df = pd.read_parquet(s3_path, storage_options=storage_options)

pandas内部でs3fs→boto3と使っているので、↑でいけることがドキュメントを見るだけでは分からなかった。 pandas.pydata.org

storage_optionsやAWS環境変数等を特に指定しないと~/.aws/credentialsのデフォルトのプロファイルが使用される。 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYの値はコード内には書きたくないので、こんな感じで~/.aws/credentialsを使うか、Secret Manager使うかとかが定石と思われる

ちと古いけどpandas1.5.1で確認