【问题标题】:How do I read a SQLite file stored in Object Storage from a Python notebook in Spark as a Service all on Bluemix?如何从 Spark as a Service all on Bluemix 中的 Python notebook 中读取存储在 Object Storage 中的 SQLite 文件?
【发布时间】:2016-06-02 23:14:14
【问题描述】:

我在 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 文件?

【问题讨论】:

    标签: python sqlite apache-spark ibm-cloud object-storage


    【解决方案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

    谢谢, 查尔斯。

    【讨论】:

    • 非常感谢您的回复!我会尝试以类似的方式做到这一点。这可能看起来微不足道,但是您可以扩展您在“#Download sqlite jdbc 并将其添加为 jar”步骤中所做的事情吗?
    • 嗨罗斯...请忽略这一步...我正在编写 Scala 笔记本然后意识到 bluemix 已经有 SQLite 驱动程序并且您正在寻找 Python 代码...我刚刚更新了 github repo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    相关资源
    最近更新 更多