即使配置了EMR,也找不到Spark org.postgresql.Driver

时间:2019-11-06 21:47:48

标签: amazon-web-services apache-spark pyspark amazon-emr

我正在尝试使用以下代码将pyspark数据帧写入Postgres数据库:

mode = "overwrite"
url = "jdbc:postgresql://host/database"
properties = {"user": "user","password": "password","driver": "org.postgresql.Driver"}
dfTestWrite.write.jdbc(url=url, table="test_result", mode=mode, properties=properties)

但是我遇到以下错误:

An error occurred while calling o236.jdbc.
: java.lang.ClassNotFoundException: org.postgresql.Driver

我发现了一些SO类似的问题,但没有找到任何有帮助的问题。我遵循了AWS文档here来添加配置,并且从EMR控制台看来好像已经成功了:

EMR Screenshot

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您遵循的文档是为Presto添加数据库连接器,而不是将jdbc驱动程序添加到spark中的方法。连接器并不意味着驱动程序。

您应该下载postgresql jdbc驱动程序并将其定位到spark lib目录或某个位置以通过配置引用它。