首页 > 解决方案 > 如何从弹性滚动结果中更快地构建熊猫数据框?

问题描述

就我而言,我必须通过滚动从弹性读取 100 万至 200 万个 json 结果。但是,从结果(10 万条记录,大约 10 秒)构建 pandas 数据框非常慢。在下面列出我的代码:

while (scroll_size > 0):
    frame = pd.DataFrame.from_dict([document['_source'] for document in page["hits"]["hits"]])
    frame['L7P'] = frame['L7P'].astype('category')
    appended_data.append(frame)
    page = es.scroll(scroll_id = sid, scroll = '1m', request_timeout = 30)
    # Update the scroll ID
    sid = page['_scroll_id']
    # Get the number of results that we returned in the last scroll
    scroll_size = len(page['hits']['hits'])

标签: pythonjsonelasticsearch

解决方案


Pandas 并不完全是大型数据集的速度恶魔。如果您想要更快的速度,请使用Datatable。


推荐阅读