2

我在 IBM 的 Bluemix 上的对象存储实例中有一个 SQLite 文件。我想从 Spark as a Service 中的 Python 笔记本访问该文件。现在,以下代码不起作用:

df = sqlContext.read.format('jdbc').\
     options(url='jdbc:sqlite:swift://container.spark/db.sqlite',\
     dbtable='schema.tablename').load()
print df.take(10)

我得到的错误是:没有找到适合 jdbc:sqlite://container.spark/db.sqlite 的驱动程序

我一直在寻找这方面的文档,但我一直没能找到它。任何帮助将非常感激。如何从 Bluemix 上的 Spark 即服务访问对象存储上的 SQLite 文件?

4

1 回答 1

1

您缺少一个要在选项中指定的参数,即要查找的驱动程序。

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 数据库,然后使用它。

https://cdsx.ng.bluemix.net/data/notebooks/1fa97ca4-721a-41b2-a958-ee58bc47577b/view?access_token=5f4e48fd292c59949ffc969b048ab849861b0a95ed708d0d679bf65ce2bf1588

Github 可导入笔记本:- https://github.com/charles2588/bluemixsparknotebooks/blob/master/sqllite_jdbc.ipynb

谢谢,查尔斯。

于 2016-06-03T19:06:47.760 回答