PySpark + ElasticSearch:读取多个索引/类型

时间:2016-04-15 18:51:35

标签: elasticsearch apache-spark pyspark

我正在使用Elasticsearch-hadoop连接器向Elasticsearch运行PySpark。我可以使用以下方法从所需的索引中读取:

    es_read_conf = {
        "es.nodes": "127.0.0.1",
        "es.port": "9200",
        "es.resource": "myIndex_*/myType"
    }
    conf = SparkConf().setAppName("devproj")
    sc = SparkContext(conf=conf)

    es_rdd = sc.newAPIHadoopRDD(
        inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat",
        keyClass="org.apache.hadoop.io.NullWritable",
        valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable",
        conf=es_read_conf
    )

工作正常。我可以通配符索引。

如何通配文件"输入"?或者,我怎样才能获得多种类型,甚至_all

1 个答案:

答案 0 :(得分:2)

对于所有类型,您可以使用“es.resource”:“myIndex _ *”。

对于通配符部分,您需要一个查询:

     "prefix": {
        "_type": {
          "value": "test"
        }
      }