Подключитесь к Vertica из Spark 2.3.1 Scala 2.11.8 с помощью jdbc - PullRequest
0 голосов
/ 22 сентября 2018

Я пытаюсь подключиться к Vertica dB с помощью Spark v2.3.1 Scala 2.11.8 с использованием jdbc.

На веб-сайте Vertica: https://www.vertica.com/blog/whats-new-vertica-8-1-connector-apache-spark/

В нем говорится, чтоЯ могу загрузить Spark Connector по следующему адресу: https://my.vertica.com/download/vertica/8-1-x/

Когда я нажимаю на ссылку, я перехожу на страницу входа, после того как я пропущу вход в желтое полевыскакивает вверху и говорит, что у меня нет разрешения на просмотр этой загрузки.

Я пробовал другой маршрут, на этот раз для загрузки со страницы загрузки Vertica.Под пакетом Linux есть 3 файла jar (vertica-javadoc, vertica-jdbc, vertica-jdbc-8.0.1-0), но я не могу найти Vertica-Spark Connector (то есть: vertica-8.1.0_spark2.0_scala2.11.jar).Я загрузил 3 баночки.

В свою среду Scala Eclipse я загрузил 3 файла банок (vertica-javadoc, vertica-jdbc, vertica-jdbc-8.0.1-0) и использовал следующий скрипт дляподключиться к Vertica:

val url = "jdbc:vertica//hostname/DBName?username=username&password=pw"

val query = "SELECT * FROM TABLE;"

val df = spark.read.format("jdbc")
.option("driver", "com.vertica.jdbc.Driver")
.option("url", url)
.option("dbtable", query)
.load()

и получить следующие ошибки:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:70)
    at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation.<init>(JDBCRelation.scala:115)
    at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:52)
    at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:340)
    at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:239)
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:227)
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:164)
    at att.com.vert2$.main(vert2.scala:37)
    at att.com.vert2.main(vert2.scala)

Что я здесь не так делаю?Я скучаю по разъему Vertica-Spark?Если это Коннектор, откуда я могу его скачать?

Приветствия.

1 Ответ

0 голосов
/ 22 сентября 2018

Я нашел проблему.

Проблема была в синтаксисе:

val url = "jdbc:vertica//hostname/DBName?username=username&password=pw"

Отсутствует: (двоеточие) между вертикой и //.Изменено с имени пользователя на пользователя.И добавил номер порта после имени хоста.

Рабочий синтаксис:

val url = "jdbc:vertica://hostname:Port/DBName?user=youruser&password=yourpassword"
...