code: def tile(cls, op):
      in_df = op.inputs[0]
      out_df = op.outputs[0]
      if op.axis is None and isinstance(in_df, DATAFRAME_TYPE):
          dtypes = pd.Series([out_df.dtype])
          index = in_df.dtypes.index
          out_df = yield from recursive_tile(
              in_df.agg(
                  cls.get_reduction_callable(op),
                  axis=0,
                  _numeric_only=op.numeric_only,
                  _bool_only=op.bool_only,
                  _combine_size=op.combine_size,
                  _output_type=OutputType.series,
                  _dtypes=dtypes,
                  _index=index,
              )
          )
          out_df = yield from recursive_tile(
              out_df.agg(
                  cls.get_reduction_callable(op),
                  axis=0,
                  _numeric_only=op.numeric_only,
                  _bool_only=op.bool_only,
                  _combine_size=op.combine_size,
                  _output_type=OutputType.scalar,
                  _dtypes=out_df.dtype,
                  _index=None,
              )
          )
          return [out_df]
      else:
          return (yield from super().tile(op))
  
file_path: mars/mars/dataframe/reduction/all.py
imports: import numpy
  import pandas
  from ...None import opcodes
  from ...config import options
  from ...core import OutputType
  from .core import DataFrameReductionOperand, DataFrameReductionMixin, recursive_tile, DATAFRAME_TYPE
label_desc: Use image node_id 2 for calling the DataFrameAll obj's underlying member method code with example usage: obj.tile(cls, op) and returns: list, unknown