python - ElasticSearch 查询 pandas 数据框

标签 python pandas elasticsearch

我有一个疑问:

s = Search(using=client, index='myindex', doc_type='mytype')
s.query = Q('bool', must=[Q('match', BusinessUnit=bunit),
                          Q('range', **dicdate)])

res = s.execute()

返回 627033 行,我想将此字典转换为包含 627033 行的数据帧

最佳答案

如果您的请求可能从Elasticsearch返回超过10,000个文档,您将需要使用Elasticsearch的滚动功能。该函数的文档和示例很难找到,因此我将为您提供一个完整的、有效的示例:

import pandas as pd
from elasticsearch import Elasticsearch
import elasticsearch.helpers


es = Elasticsearch('127.0.0.1',
        http_auth=('my_username', 'my_password'),
        port=9200)

body={"query": {"match_all": {}}}
results = elasticsearch.helpers.scan(es, query=body, index="my_index")
df = pd.DataFrame.from_dict([document['_source'] for document in results])

只需编辑以“my_”开头的字段即可对应您自己的值

关于python - ElasticSearch 查询 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46471922/

相关文章:

python - Django - 403 Forbidden - CSRF token 丢失或不正确

elasticsearch - 如何停止 logstash 将 logstash 日志写入 syslog?

python - 使用 Selenium Python 进行网页抓取 [Twitter + Instagram]

python - 基于多个条件pandas输出逻辑序列

python - 用零 python Pandas 填充 nan

java - ElasticSearch post_filter Java API问题

elasticsearch - 文本搜索微服务架构

python - 如何找到第一层的后代?

python - 在pygame中发生一定数量的碰撞后更改背景

python - 在 Python 中减去两个日期