【问题标题】:How to limit the number of data to be uploaded to ElasticSearch如何限制上传到 ElasticSearch 的数据数量
【发布时间】:2021-05-08 16:25:13
【问题描述】:

如何限制上传到 Elasticsearch 的数据数量?我的旧笔记本电脑无法像我正在使用的那样处理庞大的数据集。

我已使用以下代码“限制”要上传的数据

from elasticsearch import helpers, Elasticsearch
import csv
import itertools

with open('my_data.csv', encoding="utf8") as f:
    reader = csv.DictReader(f)
    for row in itertools.islice(reader, 1000): #limitation of data
        helpers.bulk(es, reader, index='movie-plots', doc_type=None)

但这显然行不通;当我检查 'POST movie-plots/_count' 时,它会返回整个数据集的初始大小。

如果这是一个新手问题,我对 Elasticsearch 完全陌生,很抱歉。我正在使用 Python 客户端(在 Jupyter 笔记本中)以使用 Elasticsearch 和 Kibana。

【问题讨论】:

    标签: python elasticsearch elasticsearch-py


    【解决方案1】:

    您在reader 上调用islice ...但无论如何您将所有reader 传递给helpers.bulk

    不在我可以测试的地方;但请尝试删除 for 循环并直接将 islice 传递给 helpers.bulk

    with open('my_data.csv', encoding="utf8") as f:
        reader = csv.DictReader(f)
        helpers.bulk(es, itertools.islice(reader, 1000), index='movie-plots', doc_type=None)
    

    【讨论】:

    • 非常感谢!这需要前 1000 个吗?
    • 是的,islice 就是这样做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2015-12-03
    相关资源
    最近更新 更多