繁体   English   中英

Sqlite 磁盘 I/O 错误(python - databricks)

[英]Sqlite disk I/O error (python - databricks)

所以,我在 Databricks 上运行一个集群。 当我尝试像这样查询 sqlite 文件时:

import sqlite3

conn = sqlite3.connect("/dbfs/FileStore/testing.sqlite")
cur = conn.cursor()
cur.execute('''SELECT * FROM ZACCELEROMETER''')

我收到此错误:

OperationalError                          Traceback (most recent call last)
<command-163> in <module>
----> 1 cur.execute('''SELECT * FROM ZACCELEROMETER''')

OperationalError: disk I/O error

值得一提的是,我可以在 Jupiter 本地查询这个确切的文件。 另一件不寻常的事情是在数据块上,我试图打开我在互联网上找到的名为“Chinook_Sqlite.SQLite”的示例 SQLite 文件,它工作正常,没有错误,与第一个文件不同。 我认为它可能与第一个 SQLite 文件的编码有关。

任何建议将不胜感激。 如果有不清楚的地方,请告诉我。

谢谢!

对于将来会遇到此问题的任何人,我找到了一个解决方案,我认为它适用于任何分布式文件系统。

conn = sqlite3.connect('data.sqlite')
curr = conn.execute('PRAGMA locking_mode = EXCLUSIVE')

只需简单地运行第二行,它应该可以工作。 我相信问题在于 sqlite 是要在本地运行(即由一台机器运行),所以在 NFS 上,将 sqlite 文件的锁定模式设置为独占将只允许一个用户访问 Z786D348E95448E4FFFZ 文件,而连接 7872B仍然活跃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM