ray.data.datasource.FilenameProvider#

class ray.data.datasource.FilenameProvider[源代码]#

基类:object

在编写 Dataset 时生成文件名。

使用此类来自定义在写入数据集时使用的文件名。

一些方法将每一行写入单独的文件,而其他方法则将每个块写入单独的文件。例如,ray.data.Dataset.write_images() 写入单独的行,而 ray.data.Dataset.write_parquet() 写入数据块。有关块的更多信息,请参阅 数据内部

如果你将每一行写入单独的文件,请实现 get_filename_for_row()。否则,请实现 get_filename_for_block()

示例

这个片段展示了如何在书面文件中编码标签。例如,如果 "cat" 是一个标签,你可能会写一个名为 cat_000000_000000_000000.png 的文件。

import ray
from ray.data.datasource import FilenameProvider

class ImageFilenameProvider(FilenameProvider):

    def __init__(self, file_format: str):
        self.file_format = file_format

    def get_filename_for_row(self, row, task_index, block_index, row_index):
        return (
            f"{row['label']}_{task_index:06}_{block_index:06}"
            f"_{row_index:06}.{self.file_format}"
        )

ds = ray.data.read_parquet("s3://anonymous@ray-example-data/images.parquet")
ds.write_images(
    "/tmp/results",
    column="image",
    filename_provider=ImageFilenameProvider("png")
)

PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。

方法

__init__

get_filename_for_block

为一段数据生成文件名。

get_filename_for_row

为一行生成一个文件名。