简体   繁体   中英

How to send data post data to jobs api elasticsearch

I'm trying to post data to a machine learning api using elasticsearch. What format does the json docs need to be in?

I've attempted to send data with json docs separated by newline in a txt file. I've also tried converting back and forth to json using dump and load to no avail. The documentation states that the documents can be separated by whitespace, but no matter what I try it won't accept them.

https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html

Here is an example of a json doc saved as file_name.json:

[{"myid": "id1", "client": "client1", "submit_date": 1514764857},
 {"my_id": "id2", "client": "client_2", "submit_date": 1514764857}]

Here is the basic code needed to post data:

from elasticsearch import Elasticsearch
from elasticsearch.client.xpack import MlClient

es = elastic_connection()
es_ml = MlClient(es)

def post_training_data(directory='Training Data', file_name='file_name.json'):
        with open(os.path.join(directory, file_name), mode='r') as train_file:
            train_data = json.load(train_file)
            es_ml.post_data(job_id=job_id, body=train_data)

post_training_data()

This is the specific error I am getting with this:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "..\train_model.py", line 218, in post_training_data
    self.es_ml.post_data(job_id=self.job_id, body=train_data)
  File "..\inc_anamoly\lib\site-packages\elasticsearch\client\utils.py", line 76, in _wrapped
    return func(*args, params=params, **kwargs)
  File "..\inc_anamoly\lib\site-packages\elasticsearch\client\xpack\ml.py", line 81, in post_data
    body=self._bulk_body(body))
AttributeError: 'MlClient' object has no attribute '_bulk_body'

This turns out to be a bug. Issue reported.

https://github.com/elastic/elasticsearch-py/issues/959

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM