红移JDBC驱动程序的冲突问题

学习如何解决红移JDBC SQLDriverWrapper驱动程序冲突。

写的亚当Pavlacka

去年发表在:2022年6月1日

问题

如果附加多个集群红移JDBC驱动程序,并使用红移连接器,笔记本REPL可能挂起或崩溃SQLDriverWrapper错误消息。

19/11/14 01:01:44错误SQLDriverWrapper:致命的非用户错误扔进ReplId-9d455-9b970-b2042 . lang。NoSuchFieldError: PG_SUBPROTOCOL_NAMES com.amazon.redshift.jdbc.Driver。在com.amazon.redshift.jdbc.Driver getSubProtocols(未知来源)。acceptsSubProtocol(未知源)com.amazon.jdbc.common.BaseConnectionFactory.acceptsURL(未知源)com.amazon.jdbc.common.AbstractDriver.connect(未知源)org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper.connect (DriverWrapper.scala: 45) com.databricks.spark.redshift.JDBCWrapper.getConnector (RedshiftJDBCWrapper.scala: 355) com.databricks.spark.redshift.JDBCWrapper.getConnector (RedshiftJDBCWrapper.scala: 376) com.databricks.spark.redshift.RedshiftRelation anonfun模式美元1.美元(RedshiftRelation.scala: 75)应用com.databricks.spark.redshift.RedshiftRelation anonfun模式美元1.美元申请(RedshiftRelation.scala: 72)

导致

砖运行时不包括一个红移的JDBC驱动程序。如果您使用的是红移,必须附上正确的司机您的集群。如果附加多个红移JDBC驱动程序到一个集群他们可能不兼容,导致挂起或崩溃。

例如,下面的红移JDBC jar是不相容的:

  • RedshiftJDBC41-1.1.7.1007.jar
  • RedshiftJDBC42-no-awssdk-1.2.20.1043.jar

如果你把这两个相同的集群SQLDriverWrapper则会显示错误消息,当你试图访问红移。

解决方案

你应该只有一个红移JDBC驱动程序附加到一个集群。检查红移JDBC驱动程序文档为您的集群选择正确的驱动程序。

这篇文章有用吗?