如何在 Bluemix 上的 Spark 即服务中从 Python 笔记本读取对象存储中存储的 SQLite 文件?

How do I read a SQLite file stored in Object Storage from a Python notebook in Spark as a Service all on Bluemix?

我在 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)

我得到的错误是:找不到适合 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 数据库,然后使用它。

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

谢谢, 查尔斯.