Не удается прочитать из GreenPlum с помощью Spark Connector - PullRequest
0 голосов
/ 21 марта 2020

Пожалуйста, кто-нибудь может помочь мне выйти из этой проблемы.

Я пытаюсь читать с Greenplum, используя разъем GreenPlum-Spark. Я использовал jar greenplum-spark_2.11-1.5.0.jar, который я скачал с https://network.pivotal.io/products/pivotal-gpdb/

Я пытаюсь получить доступ к greenplum из spark-shell и импортированной банки, как показано ниже

C: \ spark-shell --jars C: \ jars \ greenplum-spark_2.11-1.6.2.jar

scala>val gscReadOptionMap = Map(
      "url" -> "jdbc:postgresql://server-ip:5432/db_name",
      "user" -> "user_id",
      "password" -> "pwd",
      "dbschema" -> "schema_name",
      "dbtable" -> "table_name",
      "driver" -> "org.postgresql.Driver"
)

scala>val gpdf = spark.read.format("greenplum").options(gscReadOptionMap).load()

(или)

scala>val gpdf = spark.read.format("io.pivotal.greenplum.spark.GreenplumRelationProvider").options(gscReadOptionMap).load()

Возникновение ошибки ниже: java .lang.IllegalArgumentException: '' не существует в таблице "имя_схемы". "Имя_таблицы" в io.pivotal.greenplum.spark.GreenplumRelationProvider.createRelation (GreenplumRelationProvider. scala: 50) в орг. apache .spark. sql .execution.datasources.DataSource.resolveRelation (DataSource. scala: 318) в орг. apache .spark. sql .DataFrameReader.loadV1Source (DataFrameReader. scala: 223) в орг. apache .spark. sql .DataFrameReader.load (DataFrameReader. scala: 211) в орг. apache .spark. sql .DataFrameReader.load (DataFrameReader. scala: 167) ... 49 исключено

1 Ответ

0 голосов
/ 21 марта 2020

Вам не хватает опции partitionColumn в вашем gscReadOptionMap. Например:

val gscOptionMap = Map(
    "url" -> "jdbc:postgresql://gsc-dev/tutorial",
    "user" -> "gpadmin",
    "password" -> "changeme",
    "dbschema" -> "faa",
    "dbtable" -> "otp_c",
    "partitionColumn" -> "airlineid"
)

Для получения более подробной информации, пожалуйста, посмотрите документацию .

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