Pyspark EMR Jupyter Notebooks Зависимости загрузки JAR Postgres - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь записать фрейм данных в базу данных Postgres и слежу за вопросом здесь . Как этот пользователь, я подтвердил, что могу запускать код прямо из командной строки, но мне нужно, чтобы он запускался через Блокнот Jupyter. Вот что у меня есть:

from pyspark.sql import SparkSession
spark = SparkSession.builder.config('spark.driver.extraClassPath', '/home/hadoop/postgresql-42.2.5.jar').getOrCreate()


df = spark.read.format("parquet").option("inferSchema","false").option("header","true").load(input).select(fields)

mode = "append"
url = "jdbc:postgresql://host/db"
properties = {"user": "user","password": "password","driver": "org.postgresql.Driver"}
df.write.jdbc(url=url, table="test_result", mode=mode, properties=properties)

Но я продолжаю получать сообщение об ошибке:

An error occurred while calling o188.jdbc.
: java.lang.ClassNotFoundException: org.postgresql.Driver

Пожалуйста, кто-то укажет, что я делаю неправильно, я в конце своегоостроумие.

РЕДАКТИРОВАТЬ:

Я обновил свой код для этого:

from pyspark.sql import SparkSession
spark = SparkSession.builder.config('spark.driver.extraClassPath', '/home/hadoop/postgresql-42.2.5.jar').getOrCreate()

mode = "append"
url = "jdbc:postgresql://host/db"
properties = {"user": "user","password": "password"}
df.write.jdbc(url=url, table="test_result", mode=mode, properties=properties)

и получил новую ошибку:

An error occurred while calling o236.jdbc.
: java.sql.SQLException: No suitable driver

РЕДАКТИРОВАТЬ 2:

Связанные посты предназначены для документированных конфигураций MySQL, которые не используют ноутбуки Jupyter

...