如何在python中从dataframe将数据推送到elasticsearch

时间:2017-08-15 19:09:05

标签: python pandas elasticsearch pyelasticsearch

我正在尝试使用弹性搜索库,例如pyelasticsearchelasticsearch我没有得到任何可以传递数据帧的方法,并且该方法会将数据帧数据加载到弹性搜索中。

我正在尝试这段代码:

for i,df in enumerate(csvfile): 
print (i)
records=df.where(pd.notnull(df), None).T.to_dict()
list_records=[records[it] for it in records]
print(list_records)
try :
    es.bulk_index("call_demo_data1","tweet",list_records)
except :
    print ("error!, skiping some tweets sorry")
    pass

其中csvfile是我的所有数据都存在的数据框。但我收到了以下错误

'str' object has no attribute 'where'

我在评论中使用过推荐

现在问题已解决,我在批量加载时收到此错误

我使用上面的方法加载数据弹性搜索我遇到了问题所以这里是我之前发布的问题的链接

以下是我现在使用的代码:

records= csvfile.T.to_dict()
list_records=[records[it] for it in records]
#print(list_records)
es.bulk_index("call_demo_data1","tweet",list_records)

我得到的错误是:

too many values to unpack (expected 2) 

批量索引时出现此错误。上面代码中的csvfile是一个数据帧。我正在使用这个liabrary pyelasticsearch

这是错误追溯 Traceback

0 个答案:

没有答案