code: def get_handler(backend, rank, size):
      if backend == "horovod":
          return HorovodDatasetHanlder(rank, size)
  
      if backend == "tf-distributed":
          return TFDistributedDatasetHandler(rank, size)
  
      if backend == "tf-local":
          return LocalDatasetHandler(rank, size)
  
      invalidInputError(False, f"invalid backend: {backend}")
  
imports: import json
  import os
  import socket
  import shutil
  import tempfile
  import copy
  import ray
  from contextlib import closing
  from bigdl.dllib.utils import log4Error
  from bigdl.orca.data.utils import partitions_get_data_label, partitions_get_tf_dataset
  from bigdl.orca.data.file import is_file, get_remote_file_to_local, get_remote_dir_to_local, get_remote_files_with_prefix_to_local, put_local_file_to_remote, put_local_dir_tree_to_remote, put_local_files_with_prefix_to_remote
  from bigdl.orca.learn.utils import process_tensorboard_in_callbacks
  from bigdl.dllib.utils.log4Error import *
label_desc: Use image node_id 7 for calling the DatasetHandler obj's underlying member method code with example usage: obj.get_handler(backend, rank, size) and returns: HorovodDatasetHanlder, TFDistributedDatasetHandler, LocalDatasetHandler