Elasticsearch
[Python] Insert bulk from pandas dataframe to elasticsearch
Pydole
2020. 2. 15. 22:40
Python을 이용하여 Elasticsearch로 Bulk insert
import pandas as pd
from elasticsearch import Elasticsearch
from elasticsearch.helpers import bulk
# Datetime, String, Interger Example Dataframe
listDate = ['2020-01-01 00:00:00','2020-01-01 00:01:00','2020-01-01 00:02:00', '2020-01-01 00:03:00']
listStrings = ['a','b','c','d']
listInterger = [1, 2, 3, 4 ]
df = pd.DataFrame([ x for x in zip(listDate,listStrings,listInterger)], columns=['date','string', 'interger'])
df['date'] = pd.to_datetime(df['date'])
# dataframe to elasticsearch
es = Elasticsearch(host='host', port=' ')
es.indices.create(index='bulk_test',body={})
df = pd.DataFrame(data = {'date' : df['date'],
'strings': df['string'],
'interger' : df['interger']})
documents = df.to_dict(orient='records')
bulk(es, documents, index='bulk_test',doc_type='foo', raise_on_error=True)