ray.data.datasource.RowBasedFileDatasink#

class ray.data.datasource.RowBasedFileDatasink(path: str, *, filesystem: pyarrow.fs.FileSystem | None = None, try_create_dir: bool = True, open_stream_args: Dict[str, Any] | None = None, filename_provider: FilenameProvider | None = None, dataset_uuid: str | None = None, file_format: str | None = None)[源代码]#

基类:_FileDatasink

一个将一行写入每个文件的数据接收器。

子类必须实现 write_row_to_file 并调用父类的构造函数。

示例

import io
from typing import Any, Dict

import pyarrow
from PIL import Image

from ray.data.datasource import RowBasedFileDatasink

class ImageDatasink(RowBasedFileDatasink):
    def __init__(self, path: str, *, column: str, file_format: str = "png"):
        super().__init__(path, file_format=file_format)
        self._file_format = file_format
        self._column = column

    def write_row_to_file(self, row: Dict[str, Any], file: "pyarrow.NativeFile"):
        image = Image.fromarray(row[self._column])
        buffer = io.BytesIO()
        image.save(buffer, format=self._file_format)
        file.write(buffer.getvalue())

开发者API: 此API可能会在Ray的次要版本之间发生变化。

方法

__init__

初始化此数据接收器。

get_name

返回此数据接收器的可读名称。

on_write_failed

写入作业失败时的回调。

on_write_start

创建一个目录来写入文件。

write_row_to_file

写入一行到文件。

属性

num_rows_per_write

每次调用 write() 时传递的目标行数。

supports_distributed_writes

如果 False ,仅在驱动节点上启动写任务。