code: def _tile_dataframe(cls, op: "DataFrameAppend"):
      out_df = op.outputs[0]
      inputs = op.inputs
      first_df, others = inputs[0], inputs[1:]
      column_splits = first_df.nsplits[1]
      new_others = []
      for item in others:
          r = yield from recursive_tile(
              item.rechunk({1: column_splits})
          )
          new_others.append(r)
      others = new_others
      out_chunks = []
      nsplits = [[], list(first_df.nsplits[1])]
      row_index = 0
      for df in [first_df] + others:
          for c in df.chunks:
              index = (c.index[0] + row_index, c.index[1])
              iloc_op = DataFrameIlocGetItem(indexes=[slice(None)] * 2)
              out_chunks.append(
                  iloc_op.new_chunk(
                      [c],
                      shape=c.shape,
                      index=index,
                      dtypes=c.dtypes,
                      index_value=c.index_value,
                      columns_value=c.columns_value,
                  )
              )
          nsplits[0] += df.nsplits[0]
          row_index += len(df.nsplits[0])
      if op.ignore_index:
          yield out_chunks
          out_chunks = standardize_range_index(out_chunks)
  
      nsplits = tuple(tuple(n) for n in nsplits)
      new_op = op.copy()
      return new_op.new_dataframes(
          op.inputs,
          out_df.shape,
          nsplits=nsplits,
          chunks=out_chunks,
          dtypes=out_df.dtypes,
          index_value=out_df.index_value,
          columns_value=out_df.columns_value,
      )
  
file_path: mars/mars/dataframe/merge/append.py
imports: import pandas
  from ...None import opcodes
  from ...core import OutputType, recursive_tile
  from ...serialization.serializables import BoolField
  from ..datasource.dataframe import from_pandas
  from ..indexing.iloc import DataFrameIlocGetItem, SeriesIlocGetItem
  from ..utils import parse_index, standardize_range_index
  from ..operands import DataFrameOperand, DataFrameOperandMixin, DATAFRAME_TYPE, SERIES_TYPE
label_desc: Use image node_id 2 for calling the DataFrameAppend obj's underlying member method code with example usage: obj._tile_dataframe(cls, op) and returns: new_op