Когда я пытался использовать spark-testing-base в Python, мне нужно было протестировать функцию, которая пишет в БД Postgres.
Для этого необходимо предоставитьSpark Session - драйвер для подключения к Posgtres;чтобы достичь этого, я сначала попытался переопределить метод getConf()
(как указано в комментарии Override this to specify any custom configuration.
).Но, видимо, это не работает.Возможно, я не передаю значение с требуемым синтаксисом или чем-то еще, но после многих попыток я все равно получаю ошибку java.lang.ClassNotFoundException: org.postgresql.Driver
(типично, когда Jar драйвера не был правильно загружен через параметр conf).
ПопыткаgetConf
переопределить:
def getConf(self):
return ("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
def getConf(self):
return {"spark.jars.packages", "org.postgresql:postgresql:42.1.1"}
def getConf(self):
return SparkConf()\
.setMaster("local[*]")\
.setAppName("test")\
.set("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
Так что я даже пытался переопределить the setUp()
метод, подобный этому:
def setUp(self):
try:
from pyspark.sql import Session
self.session = Session.Builder.config("spark.jars.packages", "org.postgresql:postgresql:42.1.1")
self.sqlCtx = self.session._wrapped
except Exception:
self.sqlCtx = SQLContext(self.sc)
Но все равно не повезло.Так что я делаю не так?Как мне переопределить метод getConf()
?