Код: Выделить всё
import boto3
import polars as pl
import os
session = boto3.Session(profile_name=os.environ["AWS_PROFILE"])
credentials = session.get_credentials()
current_credentials = credentials.get_frozen_credentials()
# Specify your S3 bucket and file path
s3_bucket = "bucket"
s3_file_path = "path/file.parquet"
# Create the full S3 path
s3_path = f"s3://{s3_bucket}/{s3_file_path}"
storage_options = {
'aws_access_key_id': current_credentials.access_key,
'aws_secret_access_key': current_credentials.secret_key,
'aws_region': 'us-east-1' credentials
}
df = pl.scan_parquet(s3_path, storage_options=storage_options)
ComputeError: Общая ошибка S3: ошибка клиента со статусом 403. Запрещено: нет тела.
версии:
- Python '3.9.18'
- polars '0.20.14'
- boto3 '1.34.58'
Я также успешно могу читать паркет с помощью pandas, просто установив окружение AWS_PROFILE var.
Я неправильно использую Storage_options? Кажется, он не может использовать пару ключей и значений «aws_profile» для самостоятельного извлечения учетных данных локальной конфигурации?
Подробнее здесь: https://stackoverflow.com/questions/781 ... ith-polars