import boto3
s3 = boto3.client('s3')
resp = s3.select_object_content(
Bucket='s3-nb-demo',
Key='sample_data.parquet',
ExpressionType='SQL',
Expression="SELECT * FROM s3object s where s.\"Name\" = 'NB'",
InputSerialization = {'Parquet': {}},
OutputSerialization = {'CSV': {}},
)
for event in resp['Payload']:
if 'Records' in event:
records = event['Records']['Payload'].decode('utf-8')
print(records)
elif 'Stats' in event:
statsDetails = event['Stats']['Details']
print("Stats details bytesScanned: ")
print(statsDetails['BytesScanned'])
print("Stats details bytesProcessed: ")
print(statsDetails['BytesProcessed'])
print("Stats details bytesReturned: ")
print(statsDetails['BytesReturned'])
Код не возвращает ни одной строки. Я проверил файл данных и запрос с помощью Athena, и он возвращает несколько строк. У объекта resp['Payload']
нет атрибута с именем Records
. Я видел много примеров с использованием файла CSV, но не видел сообщений в файле Parquet.