优化pandas数据框索引以使其具有弹性的最佳方法

时间:2018-11-12 14:27:53

标签: python-3.x pandas elasticsearch

我有一个包含一百万行数据的数据框。我想使用批量将其保存到elasticsearch。

到目前为止,这是我的方法

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

它可以在我的测试环境中运行,但是,它在进程中消耗了大量的ram内存,而我的服务器没有处理它。

是否有更好的方法创建此bulk_data列表?

0 个答案:

没有答案