У меня кластер Greenplum на Azure, к которому я могу получить доступ к его данным с локального компьютера при использовании простого соединения JDB C. Теперь я попытался использовать тот же драйвер JDB C в Spark SQL следующим образом:
val url = s"jdbc:pivotal:greenplum://$server:$port;DatabaseName=$database"
Spark.sqlContext.read.format("jdbc")
.options(Map(
"url"->url, "user"-> user, "password"-> password,
"dbschema" -> "public", "dbtable" -> table
))
.load()
При выполнении load()
выдается следующая ошибка
Exception in thread "main" java.sql.SQLSyntaxErrorException: [Pivotal][Greenplum JDBC Driver][Greenplum]prepared statement "PS1" already exists.
at com.pivotal.jdbc.greenplumbase.ddcd.b(Unknown Source)
at com.pivotal.jdbc.greenplumbase.ddcd.a(Unknown Source)
at com.pivotal.jdbc.greenplumbase.ddcc.b(Unknown Source)
at com.pivotal.jdbc.greenplumbase.ddcc.a(Unknown Source)
at com.pivotal.jdbc.greenplum.wp.ddj.m(Unknown Source)
at com.pivotal.jdbc.greenplum.ddg.c(Unknown Source)
at com.pivotal.jdbc.greenplum.ddg.d(Unknown Source)
at com.pivotal.jdbc.greenplum.ddg.a(Unknown Source)
at com.pivotal.jdbc.greenplumbase.dddr.y(Unknown Source)
at com.pivotal.jdbc.greenplumbase.dddr.x(Unknown Source)
at com.pivotal.jdbc.greenplumbase.dddl.executeQuery(Unknown Source)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:61)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation$.getSchema(JDBCRelation.scala:210)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:35)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:318)
at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:167)
at dzlab.GreenplumSparkSample$.read1(GreenplumPropertyFactory.scala:21)
at dzlab.GreenplumSparkSample$.main(GreenplumPropertyFactory.scala:35)
at dzlab.GreenplumSparkSample.main(GreenplumPropertyFactory.scala)
Если я использую простое соединение JDB C и считываю / записываю данные способом java, все работает нормально. ТАК не уверен, в чем здесь проблема?