全局配置#

class ray.data.DataContext(target_max_block_size: int = 134217728, target_shuffle_max_block_size: int = 1073741824, target_min_block_size: int = 1048576, streaming_read_buffer_size: int = 33554432, enable_pandas_block: bool = True, actor_prefetcher_enabled: bool = False, use_push_based_shuffle: bool = False, pipeline_push_based_shuffle_reduce_tasks: bool = True, scheduling_strategy: None | str | ~ray.util.scheduling_strategies.PlacementGroupSchedulingStrategy | ~ray.util.scheduling_strategies.NodeAffinitySchedulingStrategy | ~ray.util.scheduling_strategies.NodeLabelSchedulingStrategy = 'SPREAD', scheduling_strategy_large_args: None | str | ~ray.util.scheduling_strategies.PlacementGroupSchedulingStrategy | ~ray.util.scheduling_strategies.NodeAffinitySchedulingStrategy | ~ray.util.scheduling_strategies.NodeLabelSchedulingStrategy = 'DEFAULT', large_args_threshold: int = 52428800, use_polars: bool = False, eager_free: bool = True, decoding_size_estimation: bool = True, min_parallelism: int = 200, read_op_min_num_blocks: int = 200, enable_tensor_extension_casting: bool = True, enable_auto_log_stats: bool = False, verbose_stats_logs: bool = False, trace_allocations: bool = False, execution_options: ExecutionOptions = <factory>, use_ray_tqdm: bool = True, enable_progress_bars: bool = True, enable_operator_progress_bars: bool = True, enable_progress_bar_name_truncation: bool = True, enable_get_object_locations_for_metrics: bool = False, write_file_retry_on_errors: ~typing.List[str] = ('AWS Error INTERNAL_FAILURE', 'AWS Error NETWORK_CONNECTION', 'AWS Error SLOW_DOWN', 'AWS Error UNKNOWN (HTTP status 503)'), warn_on_driver_memory_usage_bytes: int = 2147483648, actor_task_retry_on_errors: bool | ~typing.List[BaseException] = False, op_resource_reservation_enabled: bool = True, op_resource_reservation_ratio: float = 0.5, max_errored_blocks: int = 0, log_internal_stack_trace_to_stdout: bool = False, raise_original_map_exception: bool = False, print_on_execution_start: bool = True, s3_try_create_dir: bool = False, wait_for_min_actors_s: int = 600, retried_io_errors: ~typing.List[str] = <factory>)[源代码]#

Ray Data 的全局设置。

配置此类以启用高级功能并调整性能。

警告

在创建 Dataset 之前应用更改。之后所做的更改将不会生效。

备注

此对象会自动传播到工作节点。通过 DataContext.get_current() 从驱动程序和远程工作节点访问它。

示例

>>> from ray.data import DataContext
>>> DataContext.get_current().enable_progress_bars = False
参数:
  • target_max_block_size – 读取和转换的最大目标块大小(以字节为单位)。

  • target_shuffle_max_block_sizerandom_shufflesortrepartition 等 shuffle 操作的最大目标块大小(以字节为单位)。

  • target_min_block_size – Ray Data 在读取时避免创建小于此字节大小的块。这优先于 read_op_min_num_blocks

  • streaming_read_buffer_size – 从本地或远程存储进行流式读取时的缓冲区大小。

  • enable_pandas_block – 是否启用了 pandas 块格式。

  • actor_prefetcher_enabled – 是否使用基于角色的块预取器。

  • use_push_based_shuffle – 是否使用基于推送的洗牌。

  • pipeline_push_based_shuffle_reduce_tasks

  • scheduling_strategy – 全局调度策略。对于参数较大的任务,scheduling_strategy_large_args 优先。

  • scheduling_strategy_large_args – 具有大参数的任务调度策略。

  • large_args_threshold – 任务参数被视为大参数的字节大小。选择一个值,使得数据传输开销相对于任务调度(即几十毫秒)是显著的。

  • use_polars – 是否使用 Polars 对表格数据集进行排序、分组和聚合。

  • eager_free – 是否急切地释放内存。

  • decoding_size_estimation – 是否估算数据源的内存解码数据大小。

  • min_parallelism – 此设置已弃用。请改用 read_op_min_num_blocks

  • read_op_min_num_blocks – 数据集的最小读取输出块数。

  • enable_tensor_extension_casting – 是否自动将 Pandas DataFrame 中的 NumPy ndarray 列转换为张量扩展列。

  • enable_auto_log_stats – 是否在执行后自动记录统计信息。如果禁用,您仍然可以使用 Dataset.stats() 手动打印统计信息。

  • verbose_stats_logs – 统计日志是否应该详细。这包括统计输出中的 extra_metrics 等字段,这些字段默认情况下是被排除的。

  • trace_allocations – 是否跟踪分配/急速释放。这会显著增加性能开销,仅应用于调试。

  • execution_options – 要使用的 ExecutionOptions

  • use_ray_tqdm – 是否启用分布式 tqdm。

  • enable_progress_bars – 是否启用进度条。

  • enable_progress_bar_name_truncation – 如果为 True,进度条的名称(通常是操作符名称)将在超过 ProgressBar.MAX_NAME_LENGTH 时被截断。否则,将显示完整的操作符名称。

  • enable_get_object_locations_for_metrics – 是否为指标启用 get_object_locations

  • write_file_retry_on_errors – 在写文件时应触发重试的错误消息子字符串列表。这在处理写入远程存储系统时的瞬态错误时非常有用。

  • warn_on_driver_memory_usage_bytes – 如果驱动内存超过此阈值,Ray Data 会提醒您。目前,这仅适用于洗牌操作,因为大多数其他操作不太可能使用如此多的驱动内存。

  • actor_task_retry_on_errors – 演员任务应重试的应用程序级错误。这遵循与 Ray Core 中的 retry_exceptions 相同的格式。默认设置为 False 以不重试任何错误。设置为 True 以重试所有错误,或设置为要重试的错误列表。

  • enable_op_resource_reservation – 是否为每个操作员保留资源。

  • op_resource_reservation_ratio – 每个运营商预留的总资源比例。

  • max_errored_blocks – 允许出错的块的最大数量,如果为负数则表示无限制。此选项允许在块处理任务中出现应用程序级别的异常。这些异常可能是由UDF(例如,由于数据样本损坏)或IO错误引起的。失败块中的数据将被丢弃。此选项可用于防止由于少量坏块而导致长时间运行的作业失败。

  • log_internal_stack_trace_to_stdout – 是否在记录到标准输出时包含内部 Ray Data/Ray Core 代码堆栈帧。完整的堆栈跟踪始终写入 Ray Data 日志文件。

  • raise_original_map_exception – 是否在映射UDF中遇到原始异常时抛出该异常,而不是将其包装在 UserCodeException 中。

  • print_on_execution_start – 如果 True,在执行开始时打印执行信息。

  • s3_try_create_dir – 如果 True ,在写入调用时尝试使用 S3 URI 创建 S3 上的目录。

  • wait_for_min_actors_s – 在引发超时之前,等待最小请求的执行者启动的默认时间,以秒为单位。

  • retried_io_errors – 在读取或写入文件时应触发重试的错误消息子字符串列表。这对于处理从远程存储系统读取时的瞬时错误非常有用。

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

DataContext.get_current

获取或创建一个单例上下文。