class_docstr: An operator that combines output blocks from
  two or more input operators into a single output.
docstr: Create a UnionOperator.
  
  Args:
      input_ops: Operators generating input data for this operator to union.
docstr_tok: ["Create","a","UnionOperator",".","Args",":","input_ops",":","Operators","generating","input","data","for","this","operator","to","union","."]
code: def __init__(
      self,
      *input_ops: PhysicalOperator,
  ):
      """Create a UnionOperator.
  
      Args:
          input_ops: Operators generating input data for this operator to union.
      """
  
      # By default, union does not preserve the order of output blocks.
      # To preserve the order, configure ExecutionOptions accordingly.
      self._preserve_order = False
  
      # Intermediary buffers used to store blocks from each input dependency.
      # Only used when `self._prserve_order` is True.
      self._input_buffers: List[List[RefBundle]] = [
          [] for _ in range(len(input_ops))
      ]
  
      # The index of the input dependency that is currently the source of
      # the output buffer. New inputs from this input dependency will be added
      # directly to the output buffer. Only used when `self._preserve_order` is True.
      self._input_idx_to_output = 0
  
      self._output_buffer: List[RefBundle] = []
      self._stats: StatsDict = {"Union": []}
      super().__init__(*input_ops)
  
file_path: ray/python/ray/data/_internal/execution/operators/union_operator.py
imports: from typing import List
  from ray.data._internal.execution.interfaces import ExecutionOptions, PhysicalOperator, RefBundle
  from ray.data._internal.execution.operators.base_physical_operator import NAryOperator
  from ray.data._internal.stats import StatsDict
label_desc: Use image node_id 1 to create a new UnionOperator object from inherited base classes: NAryOperator with example: obj = UnionOperator()