Мисля, че не е необходимо да копирате postgres jar в slaves, тъй като програмата на драйвера и мениджърът на клъстери се грижат за всичко. Създадох рамка с данни от външен източник на Postgres по следния начин:
Изтеглете Postgres драйвер jar :
cd $HOME && wget https://jdbc.postgresql.org/download/postgresql-42.2.5.jar
Създаване на рамка с данни :
atrribute = {'url' : 'jdbc:postgresql://{host}:{port}/{db}?user={user}&password={password}' \
.format(host=<host>, port=<port>, db=<db>, user=<user>, password=<password>),
'database' : <db>,
'dbtable' : <select * from table>}
df=spark.read.format('jdbc').options(**attribute).load()
Изпращане на задание на Spark: Добавете изтегления буркан към пътя на класа на драйвера, докато изпращате заданието на искра.
--properties spark.driver.extraClassPath=$HOME/postgresql-42.2.5.jar,spark.jars.packages=org.postgresql:postgresql:42.2.5