我试着用POLARS从S3中读取一些拼图文件.

这些文件是由RedShift在启用并行的情况下使用卸载生成的.

这4个文件是:0000_part_00.parquet0001_part_00.parquet0002_part_00.parquet0003_part_00.parquet

当我使用:pl.read_parquet("s3://my_bucket/my_folder/*.parquet")时,它只返回第一个文件(0000_part_00.parquet)->340行的结果.

奇怪的是,在本地运行相同的命令:pl.read_parquet("*.parquet")将返回所有行->1239行.

这是正常行为还是我漏掉了什么?

推荐答案

这是正常行为还是我漏掉了什么?

这是正常的and,你一定漏掉了什么.

从文档中:

参数

来源 文件或类似文件对象的路径.如果路径是目录,则 目录将用作分区感知扫描. 如果安装了fsspec,它将用于打开远程文件.

在您的本地系统中,它将其标识为目录并使用分区感知扫描.对于访问S3,它使用fsspec,并不能真正识别路径中的*.

取而代之的是:

import pyarrow.dataset as ds
import fsspec #or whatever the s3 wrapper is called
s3fs=fsspec.filesystem('s3', connection_string="xxxx")
myds=ds.dataset("s3://my_bucket/my_folder/", filesystem=s3fs)
df = pl.scan_pyarrow_dataset(myds).collect()

Python相关问答推荐

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

对所有子图应用相同的轴格式

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

Python+线程\TrocessPoolExecutor

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

使用Python和文件进行模糊输出

在Python中使用if else或使用regex将二进制数据如111转换为001""

Python全局变量递归得到不同的结果

为什么常规操作不以其就地对应操作为基础?

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

Python 3试图访问在线程调用中实例化的类的对象

如何过滤组s最大和最小行使用`transform`'

在电影中向西北方向对齐""

从嵌套极轴列的列表中删除元素

如何使用matplotlib查看并列直方图

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

将标签与山脊线图对齐

合并Pandas中的数据帧,但处理不存在的列

根据边界点的属性将图划分为子图