python - 如何从弹性滚动结果中更快地构建熊猫数据框?
问题描述
就我而言,我必须通过滚动从弹性读取 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'])
解决方案
Pandas 并不完全是大型数据集的速度恶魔。如果您想要更快的速度,请使用Datatable。
推荐阅读
- java - 无法在 Apache Tomcat WebServer 中访问该站点
- reactjs - React Hooks 和 Firestore -> 无法在未安装的组件上执行 React 状态更新
- python - Django 查询扩展用户模型进行身份验证
- arrays - 为什么我的 python 代码不删除所有等于目标的元素?
- c++14 - 在单独的类方法中使用它会使程序崩溃
- python - 使用 iterparse() 提取值并存储在数据框中
- python - 列表索引超出范围,这是一个 IndexError
- css - Bootstrap 4 - 小屏幕卡溢出
- node.js - 告诉 Nodejs Puppeteer 在 Chrome 中打开选项卡,而不是在 Vscode 中
- apache - 新网站访问者不会下载资源(样式表、图像、javascript 等)是否有原因?