【发布时间】:2021-02-25 12:07:55
【问题描述】:
所以,我正在 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 文件的编码有关。
任何建议将不胜感激! 如果有不清楚的地方请告诉我。
谢谢!
【问题讨论】:
-
它在远程文件系统上吗?
-
@Shawn 我连接的是databricks DBFS (docs.databricks.com/data/databricks-file-system.html)。任何想法它适用于某些 sqlite 文件但与其他有磁盘 I/O 错误?
-
我不知道什么是数据块,但从那个链接看,“分布式文件系统”?是的,这可能是问题所在。 Sqlite 并非设计用于网络文件系统,仅用于本地文件系统。您可以查看扩展错误代码以了解更具体的故障原因,但锁定尤其是其中的一个弱点。
标签: python sqlite databricks