class_docstr: Model for thread-safe inference.
  To do inference, you need to first initiate an InferenceModel instance, then call
  load|load_caffe|load_openvino to load a pre-trained model, and finally call predict.
  
  # Arguments
  supported_concurrent_num: Int. How many concurrent threads to invoke. Default is 1.
class_docstr_tok: ["Model","for","thread-safe","inference",".","To","do","inference",",","you","need","to","first","initiate","an","InferenceModel","instance",",","then","call","load|load_caffe|load_openvino","to","load","a","pre-trained","model",",","and","finally","call","predict",".","#","Arguments","supported_concurrent_num",":","Int",".","How","many","concurrent","threads","to","invoke",".","Default","is","1","."]
code: def distributed_predict(
      self, inputs: "RDD[Any]", sc: "SparkContext"
  ) -> "RDD[Any]":
      data_type = inputs.map(lambda x: x.__class__.__name__).first()
      input_is_table = False
      if data_type == "list":
          input_is_table = True
      jinputs = inputs.map(lambda x: Layer.check_input(x)[0])
  
      output = callZooFunc(
          self.bigdl_type,
          "inferenceModelDistriPredict",
          self.value,
          sc,
          jinputs,
          input_is_table,
      )
      return output.map(lambda x: KerasNet.convert_output(x))
  
imports: import warnings
  from bigdl.dllib.utils.common import JavaValue
  from bigdl.dllib.utils.file_utils import callZooFunc
  from bigdl.dllib.keras.engine.topology import KerasNet
  from bigdl.dllib.nn.layer import Layer
  from bigdl.dllib.utils.log4Error import invalidInputError
  from typing import Any, Union, Optional, List
  from typing import TYPE_CHECKING
label_desc: Use image node_id 11 for calling the InferenceModel obj's underlying member method code with example usage: obj.distributed_predict(inputs, sc) and returns: output