class_docstr: An interface to schedule exchange tasks (`exchange_spec`) for multi-nodes
  execution.
class_docstr_tok: ["An","interface","to","schedule","exchange","tasks","(","`","exchange_spec","`",")","for","multi-nodes","execution","."]
docstr: Execute the exchange tasks on input `refs`.
docstr_tok: ["Execute","the","exchange","tasks","on","input","`","refs","`","."]
code: def execute(
      self,
      refs: List[RefBundle],
      output_num_blocks: int,
      map_ray_remote_args: Optional[Dict[str, Any]] = None,
      reduce_ray_remote_args: Optional[Dict[str, Any]] = None,
  ) -> Tuple[List[RefBundle], StatsDict]:
      """
      Execute the exchange tasks on input `refs`.
      """
      raise NotImplementedError
  
file_path: ray/python/ray/data/_internal/planner/exchange/interfaces.py
imports: from typing import Any, Dict, List, Optional, Tuple, Union
  from ray.data._internal.execution.interfaces import RefBundle
  from ray.data._internal.stats import StatsDict
  from ray.data.block import Block, BlockMetadata
label_desc: Use image node_id 2 for calling the ExchangeTaskScheduler obj's underlying member method code with example usage: obj.execute(refs, output_num_blocks, map_ray_remote_args, reduce_ray_remote_args) without return types