code: def _tile_one_by_one(cls, op):
      in_df = op.inputs[0]
      in_value_df = (
          op.value if isinstance(op.value, ENTITY_TYPE) else None
      )
      df = op.outputs[0]
  
      new_chunks = []
      for c in in_df.chunks:
          inputs = (
              [c] if in_value_df is None else [c, in_value_df.chunks[0]]
          )
          kw = c.params
          new_op = op.copy().reset_key()
          new_chunks.append(new_op.new_chunk(inputs, **kw))
  
      kw = df.params.copy()
      kw.update(dict(chunks=new_chunks, nsplits=in_df.nsplits))
      new_op = op.copy().reset_key()
      return new_op.new_tileables(op.inputs, **kw)
  
imports: import itertools
  import numpy
  import pandas
  from ...None import opcodes
  from ...config import options
  from ...core import ENTITY_TYPE, Entity, OutputType, get_output_types
  from ...core.operand import OperandStage
  from ...serialization.serializables import StringField, AnyField, BoolField, Int64Field
  from ..align import align_dataframe_dataframe, align_dataframe_series, align_series_series
  from ..core import DATAFRAME_TYPE, SERIES_TYPE
  from ..operands import DataFrameOperandMixin, DataFrameOperand
  from ..utils import validate_axis
label_desc: Use image node_id 14 for calling the FillNA obj's underlying member method code with example usage: obj._tile_one_by_one(cls, op) and returns: new_op