Я пытаюсь опубликовать данные в 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'