使用Polars从S3读取Parquet文件仅加载首个文件问题咨询
Polars读取S3上Redshift UNLOAD生成的Parquet文件仅返回首个文件数据的问题解决
这绝对不是正常现象,大概率是S3路径通配符解析或Polars的S3读取配置出了问题,以下是排查和解决方向:
检查通配符匹配规则
试试把读取路径改成更精准的匹配格式:pl.read_parquet("s3://my_bucket/my_folder/000*_part_00.parquet"),避免因为S3的前缀匹配逻辑导致通配符没有覆盖所有文件。另外确认my_folder目录下确实只有这4个目标Parquet文件,没有其他干扰项。补全S3相关依赖
Polars读取S3存储需要额外的依赖包支持,如果你只装了基础版Polars,可能会出现通配符解析失效的情况。执行以下命令补全依赖:pip install polars[s3] # 或者单独安装fsspec的S3扩展 pip install fsspec[s3]安装完成后重新运行读取代码。
手动指定文件列表读取
如果通配符始终有问题,直接手动列出所有文件路径来读取,绕开通配符解析环节:import polars as pl s3_files = [ "s3://my_bucket/my_folder/0000_part_00.parquet", "s3://my_bucket/my_folder/0001_part_00.parquet", "s3://my_bucket/my_folder/0002_part_00.parquet", "s3://my_bucket/my_folder/0003_part_00.parquet" ] full_df = pl.read_parquet(s3_files) print(full_df.shape) # 应该输出(1239, 列数)验证S3文件的可访问性
确认当前AWS权限能访问所有4个文件:用AWS CLI执行aws s3 ls s3://my_bucket/my_folder/,检查是否能看到全部4个文件;再尝试下载其中一个非首个文件到本地,用Polars读取验证文件本身是否正常,排除权限不足或文件损坏的可能。
内容的提问来源于stack exchange,提问作者FairPluto
相关产品推荐
相关产品推荐

