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.