code: def setup(self):
      import fiftyone as fo
  
      dataset = fo.load_dataset(self.dataset_name)
  
      if self.key_fcn is None:
          key_field = self.key_field
          key_fcn = lambda sample: sample[key_field]
          id_map = {
              k: v for k, v in zip(*dataset.values([key_field, "id"]))
          }
      else:
          key_fcn = self.key_fcn
          id_map = {key_fcn(s): s.id for s in dataset}
  
      self._dataset = dataset
      self._key_fcn = key_fcn
      self._id_map = id_map
  
imports: import logging
  import numpy
  import fiftyone.core.dataset
  import fiftyone.core.utils
  import fiftyone.core.view
  import apache_beam
  from apache_beam.options.pipeline_options import PipelineOptions
label_desc: Use image node_id 2 for calling the MergeBatch obj's underlying member method code with example usage: obj.setup() without return types