Interagir avec une base de données
Dans cette section, nous explorerons la capacité de Spark à se connecter à une base de données relationnelle à l'aide de JDBC, en mettant en lumière l'exemple de Postgres.
Pré-requis
Afin d'accéder à la base de données Postgres, nous aurons besoin du driver Postgres. Rendez-vous sur la page de téléchargement Download pgJDBC. Une fois le téléchargement terminé, placer-le dans un dossier de votre choix facile d'accès depuis le notebook.
Importer PySpark
Créer une session Spark
# Créer une session Spark
spark = SparkSession.builder \
.appName("Work with PostgreSQL") \
.config("spark.driver.extraClassPath", "/home/joekakone/spark/drivers/postgresql-42.7.3.jar") \
.config("spark.executor.extraClassPath", "/home/joekakone/spark/drivers/postgresql-42.7.3.jar") \
.getOrCreate()
Database Config
Connection String
Nous devons importer la classe SparkSession
depuis le module pyspark.sql
Importer une table
A partir d'une requête SQL
Exporter vers une base de données
Uen fois vos mainupulations terminées, Spark offre la possibilité d'exporter les données dans une table dans la base de données pour un usage ultérieur.
destination_table = "public.saprk_table"
colums_types = """
dt date,
country varchar(200),
latitude numeric,
longitude numeric,
confirmed integer,
deaths integer,
recovered integer,
active integer,
load_datetime timestamp
"""
df.write \
.option("createTableColumnTypes", colums_types) \
.jdbc(postgresql_long_url, destination_table)
Pour vérifier que l'exportation a été bien effectuée, on va importer la table
Fermer la session Spark
Une fois notre travail terminé, nous devons fermer la session.
Dans la prochaine section, nous verrons comment importer des données depuis des fichiers.