Как отправить данные пост данных на рабочие места API эластичный поиск - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь опубликовать данные в API машинного обучения с использованием эластичного поиска.В каком формате должны быть документы json?

Я пытался отправить данные с документами json, разделенными символом новой строки в текстовом файле.Я также пытался конвертировать туда и обратно в json, используя dump и load, но безрезультатно.В документации говорится, что документы могут быть разделены пробелами, но, что бы я ни пытался, они не примут их.

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

Вот пример документа json, сохраненного какимя_файла.json:

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

Вот базовый код, необходимый для публикации данных:

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()

Это конкретная ошибка, которую я получаю при этом:

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'

1 Ответ

0 голосов
/ 22 мая 2019

Это оказывается ошибкой.О проблеме сообщили.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...