Spark SQL 1.5.2缺少PostgreSQL的JDBC驱动程序



我在Spark SQL文档中看到,可以直接在远程PostgreSQL表上创建临时表。

CREATE TEMPORARY TABLE <table_name>
USING org.apache.spark.sql.jdbc
OPTIONS (
url "jdbc:postgresql://<PostgreSQL_Hostname_IP>/<database_name>",
dbtable "impressions"
);

当我在PostgreSQL服务器上运行这个程序时,我会得到以下错误。

Error: java.sql.SQLException: No suitable driver found for jdbc:postgresql://<PostgreSQL_Hostname_IP>/<database_name> (state=,code=0)

有人能帮我理解为什么会这样吗?

谢谢,Ben

JDBC驱动程序

JDBC驱动程序将JDBC调用和SQL转换为特定于特定数据库服务器的代码。驱动程序调解数据交换,在SQL数据类型和Java类型之间进行转换。

您必须在运行时为Java应用程序提供JDBC驱动程序。您需要获得一个合适的驱动程序,并将其放置在类路径上的某个位置,以便JVM可以在需要时访问它。

您需要编辑JDBC URL字符串来插入您的特定主机名/地址、特定数据库名称和特定数据库密码。

像Spark这样的项目不捆绑JDBC驱动程序。这样做不是他们的工作,而且维护所有数据库的所有驱动程序的所有版本的最新更新也是不切实际的。

如果使用Servlet容器,请注意JDBC驱动程序的特殊之处在于,它们可能需要放在容器本身的文件夹中,而不是像其他常规库那样放在web应用程序的文件夹中。

对于Postgres,您可以选择驱动程序。

经典驱动程序与旧版本的Java和Postgres兼容。这个驱动程序是Postgres项目的官方部分。开源且免费。

pgjdbc-ng是"下一代"驱动程序,仅支持最新版本的Java和Postgres。开源且免费。

商业JDBC供应商也提供Postgres驱动程序。

相关内容

  • 没有找到相关文章

最新更新