在python / pandas中加载大型json文件时,如何避免“数据库磁盘映像格式错误”错误?

时间:2019-09-04 10:12:17

标签: python json pandas sqlite

我正在尝试从sqlite数据库(大小为4 gb)读取表。该表的每个单元格都是一个json(很少单元格中包含大型json格式的文件)。

当我在数据库浏览器中执行查询时,该查询工作正常,但是在Python中,它给出了一个错误:“数据库磁盘映像格式错误”

我尝试使用其他表,但问题仍然存在。通过查询获取的行数约为5000。但是,每个单元格本身可能都有一个较长的json结构化字符串(大约10000行)。

我已经尝试使用数据库的副本和其他数据库。我也尝试在数据库中跟随 语用完整性检查; 语法temp_store = 2; //将数据强制进入RAM

这个问题似乎与实际的数据库相关联的是Pandas / Python

Python

conn = sqlite3.connect(db)
         sql = """ 
                 select a.Topic, a.Timestamp, a.SessionId, a.ContextMask, b.BuildUUID, a.BuildId, a.LayerId,
                 a.Payload
                 from MessageTable a
                 inner JOIN
                 BuildTable b
                 on a.BuildId = b.BuildId
                 where a.Topic = ('Engine/Sensors/SensorData')
                 and b.BuildUUID = :job
                 """
         cur = conn.cursor()
         cur.execute(sql, {"job" : '06c95a97-40c7-49b7-ad1b-0d439d412464'})
         sensordf = pd.DataFrame(data = cur.fetchall(), columns = ['Topic', 'Timestamp_epoch', 'SessionId', 'ContextMask'
                                 'BuildUUID', 'BuildId', 'LayerId', 'Payload'])

我希望输出在pandas数据框中,最后一列在每个单元格中包含json值。我可以进一步编写一些脚本以从json进行解析,以提取更多数据。

0 个答案:

没有答案