Лучший способ оптимизировать индексирование данных в pandas до эластичного - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть датафрейм с более чем миллионом строк данных.Я хочу сохранить его вasticsearch, используя объем.

На данный момент это мой подход

from elasticsearch import helpers
import pandas as pd
def save_views(self, df_views):
    es = self.es
    bulk_data = []
    df_views['update_time'] = datetime.now()
    df_dicts = df_views.to_dict(orient='records')
    for doc in df_dicts:
        doc_id = str(doc['date']) + "_" + doc['name']
        action = {"_id" : doc_id, "_index" : my_index, "_type" : my_type, "_source" : doc}
        bulk_data.append(action)
    try:
        helpers.bulk(es, bulk_data, stats_only=False)
        self.logger.info ("Views saved!")
    except Exception as e:
        self.logger.error(str(e))

Он работает в моей тестовой среде, однако он потребляет много оперативной памяти в процессе.и мой сервер не обрабатывает его.

Есть ли лучший способ создать этот список массовых данных?

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