Разъем свечи зажигания greenplum, формат ("jdb c") в порядке, отношение формата ("greenplum") не существует - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь использовать свечу зажигания greenplum, как показано ниже:

object Test4 extends App{
  val spark=SparkSession.builder().master("local").getOrCreate()
  import spark.implicits._
      val url="jdbc:postgresql://somehost:someport/test"
      val usr="greenplum"
      val psw="somepassword"
        val gpdf = spark.read.format("greenplum")
          .option("url",url)
          .option("user",usr)
          .option("password",psw)
          .option("dbtable","money.fact")
          .load()
          print(gpdf.count)
 }

, но получил исключение:

Exception in thread "main" org.postgresql.util.PSQLException: ERROR: relation "public.money.fact" does not exist
  位置:15
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2310)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2023)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:421)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:318)
    at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:281)
    at com.zaxxer.hikari.pool.ProxyStatement.executeQuery(ProxyStatement.java:111)
    at com.zaxxer.hikari.pool.HikariProxyStatement.executeQuery(HikariProxyStatement.java)
    at io.pivotal.greenplum.spark.jdbc.Jdbc$.resolveTable(Jdbc.scala:328)
    at io.pivotal.greenplum.spark.GreenplumRelationProvider.createRelation(GreenplumRelationProvider.scala:50)
    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 greenplum.Test4$.delayedEndpoint$greenplum$Test4$1(Test.scala:17)
    at greenplum.Test4$delayedInit$body.apply(Test.scala:5)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:392)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at greenplum.Test4$.main(Test.scala:5)
    at greenplum.Test4.main(Test.scala)

Хотя я добавляю опцию: .option("dbschema","test") к вышеуказанному коду, я Stitll получил ошибку и немного по-другому:

ERROR: relation "test.money.fact" does not exist

Я просто изменил format("greenplum") на format("jdbc")

, тогда я получил ожидаемый результат: номер счета

затем я проверяю это в linux ОС, где находится база данных greenplum.

greenplum@greenplum:~$ psql test
psql (9.4.24)
Type "help" for help.

test=# select count(*) from money.fact;
  count  
---------
 7032324
(1 row)

Так как мне использовать формат greeplum?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...