PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwendung der Postgresql-JDBC-Quelle mit Apache Spark auf EMR

Ich denke, Sie müssen Postgres-Jar nicht in Slaves kopieren, da sich das Treiberprogramm und der Cluster-Manager um alles kümmern. Ich habe auf folgende Weise einen Datenrahmen aus einer externen Postgres-Quelle erstellt:

Postgres-Treiber-JAR herunterladen :

cd $HOME && wget https://jdbc.postgresql.org/download/postgresql-42.2.5.jar

Datenrahmen erstellen :

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()

An Spark-Job senden: Fügen Sie die heruntergeladene JAR-Datei dem Treiberklassenpfad hinzu, während Sie den Spark-Job senden.

--properties spark.driver.extraClassPath=$HOME/postgresql-42.2.5.jar,spark.jars.packages=org.postgresql:postgresql:42.2.5