2016-04-15 5 views
0

Я запускаю PySpark с Elasticsearch с помощью соединителя Elasticsearch-hadoop. Я могу читать из желаемого индекса, используя:PySpark + ElasticSearch: чтение нескольких индексов/типов

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?

ответ

2

Для всех типов вы можете использовать «es.resource»: «myIndex_ *».

Для подстановочных частей вам потребуется запрос:

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

ладно, это сработало. Если я оставлю «тип», он выберет «все типы», – cybergoof