我正在尝试使用 S3 的选择功能,但对于某些文件,我收到 OverMaxParquetBlockSize 错误。
我的选择非常简单:
r = s3.select_object_content(
Bucket='prod-bucket',
Key='810217_0',
ExpressionType='SQL',
Expression="select s.* from s3object s where s.\"id\" = 3744469",
InputSerialization = {'Parquet': {}},
OutputSerialization = {'JSON': {
"RecordDelimiter": "\n",
}},
)
这是完整的错误:
ClientError: An error occurred (OverMaxParquetBlockSize) when calling SelectObjectContent operation: Parquet file is above the max block size
有什么方法可以解决这个问题或找到有关此限制的更多信息吗?
谢谢
根据S3 Select 文档,这是一个硬性限制 - 未压缩的块大小不能超过 256MB。
我能想到的唯一“解决方法”是用较小的块大小编写 Parquet 文件,但这可能并不总是一个现实的选择。
垂直分割文件并按页面单独查询。 S3 Select 的硬限制是 256MB 的未压缩数据。