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で確認