Мы используем AWS клей для подключения к нашей Postgres БД.
from pyspark.sql import SparkSession
from pyspark.conf import SparkConf
ss = SparkSession.builder.appName("profile-dump-dev").getOrCreate()
c = SparkConf()
ss.builder.config(conf=c)
...
x = ss.read.format("jdbc").option("url",url).option("query","select * from foo").load()
# The above line throws an exception ^
Исключение составляет:
FATAL: no pg_hba.conf entry for host "10.20.0.153", user "XXX"
В нашем файле pg_hba.conf (который означает, что SSL должен быть включен):
hostssl X X X X
Мы можем без проблем получить доступ к БД Postgres с помощью таких инструментов, как psql и django и так далее. Когда мы обращаемся к БД обычными методами, мы видим в журналах postgres:
connection authorized: user=XXX database=XXX SSL enabled (protocol=TLSv1.2, cipher=ECDHE-RSA-AES256-GCM-SHA384, compression=off)",,,,,,,,,"
Итак, в двух словах, как мы включаем SSL при использовании SparkSession?
Согласно это сделать c: https://jdbc.postgresql.org/documentation/head/ssl-client.html Мы можем передать это в драйвер: "ssl = true".
Но как передать ssl = true в драйвер? Мы используем python.