ray.data.read_parquet_bulk#
- ray.data.read_parquet_bulk(paths: str | List[str], *, filesystem: pyarrow.fs.FileSystem | None = None, columns: List[str] | None = None, parallelism: int = -1, ray_remote_args: Dict[str, Any] = None, arrow_open_file_args: Dict[str, Any] | None = None, tensor_column_schema: Dict[str, Tuple[numpy.dtype, Tuple[int, ...]]] | None = None, meta_provider: BaseFileMetadataProvider | None = None, partition_filter: PathPartitionFilter | None = None, shuffle: Literal['files'] | None = None, include_paths: bool = False, file_extensions: List[str] | None = ['parquet'], concurrency: int | None = None, override_num_blocks: int | None = None, **arrow_parquet_args) Dataset [源代码]#
从 parquet 文件创建
Dataset
而不读取元数据。在大多数情况下使用
read_parquet()
。如果所有提供的路径都指向文件,并且使用
read_parquet()
获取元数据耗时过长或 parquet 文件没有统一的架构,请使用read_parquet_bulk()
。当使用此方法处理非常大的 parquet 文件时,可能会出现性能下降。
警告
只提供文件路径作为输入(即,不提供目录路径)。如果一个或多个路径指向目录,则会引发 OSError。如果你的用例需要目录路径,请改用
read_parquet()
。示例
读取多个本地文件。当已知时,应始终仅提供输入文件路径(即没有目录路径)以最小化读取延迟。
>>> ray.data.read_parquet_bulk( ... ["/path/to/file1", "/path/to/file2"])
- 参数:
paths – 单个文件路径或文件路径列表。
filesystem – 用于读取的 PyArrow 文件系统实现。这些文件系统在 PyArrow 文档 中指定。如果你需要为文件系统提供特定的配置,请指定此参数。默认情况下,文件系统会根据路径的方案自动选择。例如,如果路径以
s3://
开头,则使用S3FileSystem
。columns – 要读取的列名列表。在文件扫描期间仅读取指定的列。
parallelism – 此参数已弃用。请使用
override_num_blocks
参数。ray_remote_args – 传递给读取任务中
remote()
的 kwargs。arrow_open_file_args – 传递给 pyarrow.fs.FileSystem.open_input_file 的 kwargs,用于打开输入文件进行读取。
tensor_column_schema – 一个字典,包含列名到 PyArrow 数据类型和形状映射,用于将包含序列化张量(ndarrays)的 Parquet 列转换为 PyArrow 张量。此函数假设张量以 C 连续顺序的原始 NumPy 数组格式序列化(例如通过
arr.tobytes()
)。meta_provider – 一个 文件元数据提供者 。自定义元数据提供者可能能够更快和/或更准确地解析文件元数据。在大多数情况下,您不需要设置此项。如果为
None
,此函数使用系统选择的实现。partition_filter – 一个
PathPartitionFilter
。与自定义回调一起使用,以仅读取数据集的选定分区。默认情况下,这将过滤掉文件扩展名与“.parquet”不匹配的任何文件路径。shuffle – 如果设置为“files”,在读取前随机打乱输入文件的顺序。默认不进行打乱,使用
None
。arrow_parquet_args – 其他传递给 PyArrow 的 Parquet 读取选项。有关完整的参数集,请参阅 PyArrow API
include_paths – 如果
True
,则包含每个文件的路径。文件路径存储在'path'
列中。file_extensions – 用于筛选文件的文件扩展名列表。
concurrency – Ray 任务的最大并发运行数量。设置此项以控制并发运行的任务数量。这不会改变运行的总任务数或输出的总块数。默认情况下,并发性是根据可用资源动态决定的。
override_num_blocks – 覆盖所有读取任务的输出块数量。默认情况下,输出块的数量是根据输入数据大小和可用资源动态决定的。在大多数情况下,您不应手动设置此值。
- 返回:
Dataset
从指定路径读取记录并生成数据集。