class_docstr: Primary DataFrame-based loading data from elastic search interface,
  defining API to read data from ES to DataFrame.
docstr: Read the data from elastic search into Spark RDD.
  
  :param esConfig: Dictionary which represents configuration for
         elastic search(eg. ip, port, es query etc).
  :param esResource: Optional. resource file in elastic search.
         It also can be set in esConfig
  :param filter: Optional. Request only those fields from Elasticsearch
  :param esQuery: Optional. es query
  :return: Spark RDD
code: def read_rdd(esConfig, esResource=None, filter=None, esQuery=None):
      """
      Read the data from elastic search into Spark RDD.
  
      :param esConfig: Dictionary which represents configuration for
             elastic search(eg. ip, port, es query etc).
      :param esResource: Optional. resource file in elastic search.
             It also can be set in esConfig
      :param filter: Optional. Request only those fields from Elasticsearch
      :param esQuery: Optional. es query
      :return: Spark RDD
      """
      sc = init_nncontext()
      if "es.resource" not in esConfig:
          esConfig["es.resource"] = esResource
      if filter is not None:
          esConfig["es.read.source.filter"] = filter
      if esQuery is not None:
          esConfig["es.query"] = esQuery
      rdd = sc.newAPIHadoopRDD(
          "org.elasticsearch.hadoop.mr.EsInputFormat",
          "org.apache.hadoop.io.NullWritable",
          "org.elasticsearch.hadoop.mr.LinkedMapWritable",
          conf=esConfig,
      )
      return rdd
  
file_path: analytics-zoo/pyzoo/zoo/orca/data/elastic_search.py
imports: from zoo.orca import OrcaContext
  from zoo.common.nncontext import init_nncontext
label_desc: Use image node_id 6 for calling the elastic_search obj's underlying member method code with example usage: obj.read_rdd(esConfig, esResource, filter, esQuery) and returns: rdd