如何将pandas数据导出到elasticsearch?

sha*_*nuo 9 elasticsearch pandas

可以使用将pandas数据帧数据导出到elasticsearch elasticsearch-py.例如,这是一些代码:

https://www.analyticsvidhya.com/blog/2017/05/beginners-guide-to-data-exploration-using-elastic-search-and-kibana/

有很多像类似的方法to_excel,to_csv,to_sql.

to_elastic方法吗?如果不是,我应该在哪里申请?

Set*_*top 11

以下脚本适用于localhost:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

INDEX="dataframe"
TYPE= "record"

def rec_to_actions(df):
    import json
    for record in df.to_dict(orient="records"):
        yield ('{ "index" : { "_index" : "%s", "_type" : "%s" }}'% (INDEX, TYPE))
        yield (json.dumps(record, default=int))

from elasticsearch import Elasticsearch
e = Elasticsearch() # no args, connect to localhost:9200
if not e.indices.exists(INDEX):
    raise RuntimeError('index does not exists, use `curl -X PUT "localhost:9200/%s"` and try again'%INDEX)

r = e.bulk(rec_to_actions(df)) # return a dict

print(not r["errors"])
Run Code Online (Sandbox Code Playgroud)

验证使用 curl -g 'http://localhost:9200/dataframe/_search?q=A:[29%20TO%2039]'

有许多小东西可以添加,以满足不同的需求,但主要是在那里.


A S*_*ANI 0

您可以使用elasticsearch-py,或者如果您不使用elasticsearch-py,您可以在这里找到问题的答案=> index-a-pandas-dataframe-into-elasticsearch-without-elasticsearch-py