【问题标题】:How to install a postgresql JDBC driver in pyspark如何在 pyspark 中安装 postgresql JDBC 驱动程序
【发布时间】:2018-02-23 11:50:06
【问题描述】:

我在 lubuntu 16.04 上使用带有 spark 2.2.0 的 pyspark,我想将 Dataframe 写入我的 Postgresql 数据库。现在据我了解,我必须在 spark master 上安装一个 jdbc 驱动程序。我从他们的网站下载了 postgresql jdbc 驱动程序并尝试关注this post。我将spark.jars.packages /path/to/driver/postgresql-42.2.1.jar 添加到spark-default.conf,唯一的结果是pyspark 不再启动。

我有点迷失在 java 领域,我不知道这是否是正确的格式。文档告诉我应该添加一个列表,但我不知道路径列表应该是什么样子。那我不知道我是否还必须指定spark.jars 和或spark.driver.extraClassPath 或者spark.jars.packages 是否足够?如果我必须添加它们,它们是什么格式?

【问题讨论】:

    标签: apache-spark jdbc pyspark pyspark-sql


    【解决方案1】:

    spark.jars.packages 用于可以从 Maven 中提取的依赖项(将其视为 Java 的 pip,尽管类比可能有点松散)。

    您可以使用选项--jars /path/to/driver/postgresql-42.2.1.jar 提交您的作业,这样提交时还将提供库,集群管理器将代表您在所有工作程序节点上分发该库。

    如果您想将此设置为配置,您可以使用spark.jars 键而不是spark.jars.packages。后者需要 Maven 坐标,而不是路径(这可能是您的工作失败的原因)。

    您可以阅读更多关于我在the official documentation 上介绍的配置键的信息。

    【讨论】:

    • 我还需要告诉spark这是要使用的驱动程序吗?我现在使用 --jars /path/to/jar 参数运行应用程序,在应用程序环境中我看到条目:spark://myip:51810/jars/postgresql-42.2.1.jar Added By User 但是当我运行代码时,我得到 Py4JJavaError: An error occurred while calling o47.jdbc. : java.sql.SQLException: No suitable driver 异常
    • 可能是这样,尝试添加properties={"driver": 'org.postgresql.Driver'}.option("driver", 'org.postgresql.Driver')(从stackoverflow.com/a/37422017/3314107 无耻地复制和编辑)
    猜你喜欢
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2013-10-25
    • 2015-12-13
    相关资源
    最近更新 更多