code: def _get_or_create_backend(self):
      backend = self.getBackend()
      if backend is None:
          backend = SparkBackend(
              self.getNumProc(), verbose=self.getVerbose()
          )
      elif self.getNumProc() is not None:
          raise ValueError(
              'At most one of parameters "backend" and "num_proc" may be specified'
          )
      return backend
  
file_path: horovod/horovod/spark/common/estimator.py
imports: import horovod.spark.common._namedtuple_fix
  from pyspark.ml import Estimator, Model
  from horovod.spark.common import util
  from horovod.spark.common.backend import SparkBackend
  from horovod.spark.common.params import EstimatorParams, ModelParams
label_desc: Use image node_id 5 for calling the HorovodEstimator obj's underlying member method code with example usage: obj._get_or_create_backend() and returns: backend