我在 IBM 的 Bluemix 上的对象存储实例中有一个 SQLite 文件。我想从 Spark 即服务中的 Python 笔记本访问该文件。现在,以下代码不起作用:
df = sqlContext.read.format('jdbc').\
options(url='jdbc:sqlite:swift://container.spark/db.sqlite',\
dbtable='schema.tablename').load()
print df.take(10)
我得到的错误是:No suitable driver found for jdbc:sqlite://container.spark/db.sqlite
我一直在寻找这方面的文档,但一直找不到。任何帮助将非常感激。如何从 Bluemix 上的 Spark 即服务访问对象存储上的 SQLite 文件?
请您参考如下方法:
您缺少在选项中指定的一个参数,即要查找的驱动程序。
df = sqlContext.read.format('jdbc').\
options(url='jdbc:sqlite:Chinook_Sqlite.sqlite',\
dbtable='employee',driver='org.sqlite.JDBC').load()
添加 driver='org.sqlite.JDBC',您会注意到找不到驱动程序。
但是对于从对象存储中读取 sqlite,我认为不支持 通过 org.sqlite.JDBC。 唯一允许的三种方法是绝对路径、文件系统和内存的相对路径。 https://bitbucket.org/xerial/sqlite-jdbc
在下面的示例中,我在 Bluemix spark 服务的本地磁盘中下载了示例 sqlite 数据库,然后使用了它。
Github 导入笔记本:- https://github.com/charles2588/bluemixsparknotebooks/blob/master/sqllite_jdbc.ipynb
谢谢, 查尔斯。
