当前位置:  开发笔记 > 编程语言 > 正文

如何使用Pandas将巨大的CSV转换为SQLite?

如何解决《如何使用Pandas将巨大的CSV转换为SQLite?》经验,为你挑选了1个好方法。

我有一个存档的CSV文件形式的巨大的表(约60 GB).我想将其转换为SQLite文件.

我现在做的如下:

import pandas
import sqlite3
cnx = sqlite3.connect('db.sqlite')
df = pandas.read_csv('db.gz', compression='gzip')
df.to_sql('table_name', cnx)

它适用于较小的文件,但有巨大的文件,我有内存问题.问题是pandas将整个表读入内存(RAM),然后将其保存到SQLite文件中.

这个问题有优雅的解决方案吗?



1> 小智..:

我没有使用那种大小的CSV做任何工作,但这听起来像是Odo可能快速解决的问题.

我粗略地检查了文档,看起来他们已经写了一些内容,解决了大于内存的CSV解析到SQL数据库的问题,这些SQL数据库专门将SQLite3称为目标.

以下是他们发布用于解析33 GB文本文件的示例.

In [1]: dshape = discover(resource('all.csv'))

In [2]: %time t = odo('all.no.header.csv', 'sqlite:///db.db::nyc',
   ...:               dshape=dshape)
CPU times: user 3.09 s, sys: 819 ms, total: 3.91 s
Wall time: 57min 31s

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有