ray.data.Dataset.write_webdataset#
- Dataset.write_webdataset(path: str, *, filesystem: pyarrow.fs.FileSystem | None = None, try_create_dir: bool = True, arrow_open_stream_args: Dict[str, Any] | None = None, filename_provider: FilenameProvider | None = None, num_rows_per_file: int | None = None, ray_remote_args: Dict[str, Any] = None, encoder: bool | str | callable | list | None = True, concurrency: int | None = None) None [源代码]#
将数据集写入 WebDataset 文件。
TFRecord 文件将包含 tf.train.Example # noqa: E501 记录,每个数据集行对应一个 Example 记录。
警告
tf.train.Feature 仅原生存储整数、浮点数和字节,因此此函数仅支持包含这些数据类型的数据集,如果数据集包含不支持的类型,将会报错。
这仅支持可转换为 Arrow 记录的数据集。要控制文件数量,请使用
Dataset.repartition()
。除非提供了自定义文件名提供程序,否则输出文件的格式为
{uuid}_{block_idx}.tfrecords
,其中uuid
是数据集的唯一标识符。备注
此操作将触发对此数据集执行的延迟转换。
示例
import ray ds = ray.data.range(100) ds.write_webdataset("s3://bucket/folder/")
时间复杂度:O(数据集大小 / 并行度)
- 参数:
path – 目标根目录的路径,tfrecords 文件将写入该目录。
filesystem – 要写入的文件系统实现。
try_create_dir – 如果
True
,尝试创建目标路径中的所有目录。如果所有目录已经存在,则不执行任何操作。默认为True
。arrow_open_stream_args – 传递给
pyarrow.fs.FileSystem.open_output_stream
的 kwargsfilename_provider – 一个
FilenameProvider
实现。使用此参数自定义文件名的外观。num_rows_per_file – 每个文件要写入的目标行数。如果为
None
,Ray Data 会写入系统选择的行数到每个文件。指定的值只是一个提示,不是一个严格的限制。Ray Data 可能会写入更多或更少的行到每个文件。ray_remote_args – 在写任务中传递给
ray.remote
的 Kwargs。concurrency – Ray 任务的最大并发运行数量。设置此参数以控制并发运行的任务数量。这不会改变运行的任务总数。默认情况下,并发性是根据可用资源动态决定的。
PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。