Как читать файлы паркета из AWS S3 с помощью поляровPython

Программы на Python
Anonymous
 Как читать файлы паркета из AWS S3 с помощью поляров

Сообщение Anonymous »

Следуя документации по чтению из облачного хранилища, я создал приведенный ниже скрипт, который не работает.

Код: Выделить всё

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'
Работает на MacOS.
Я также успешно могу читать паркет с помощью pandas, просто установив окружение AWS_PROFILE var.
Я неправильно использую Storage_options? Кажется, он не может использовать пару ключей и значений «aws_profile» для самостоятельного извлечения учетных данных локальной конфигурации?

Подробнее здесь: https://stackoverflow.com/questions/781 ... ith-polars

Вернуться в «Python»