S3 SELECT в файле Parquet не возвращает никаких записей - PullRequest
0 голосов
/ 27 мая 2020
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.

...