Plus sur les DataFrames Spark

Introduction à PySpark

Benjamin Schmidt

Data Engineer

Créer des DataFrames à partir de diverses sources de données

  • Fichiers CSV : Courants pour les données structurées et délimitées
  • Fichiers JSON : Format de données semi-structuré et hiérarchique
  • Fichiers Parquet : Optimisés pour le stockage et les requêtes, souvent utilisés en ingénierie des données
  • Exemple :
    spark.read.csv("path/to/file.csv")
    
  • Exemple :
    spark.read.json("path/to/file.json")
    
  • Exemple :
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introduction à PySpark

Inférence de schéma et définition manuelle de schéma

  • Spark peut déduire les schémas des données avec inferSchema=True

  • Définir manuellement le schéma pour un meilleur contrôle - utile pour les structures de données fixes

Schéma à grande échelle

Introduction à PySpark

Types de données dans les DataFrames PySpark

  • IntegerType : Nombres entiers
    • Ex., 1, 3478, -1890456
  • LongType : Nombres entiers plus grands
    • Ex., nombres signés sur 8 octets, 922334775806
  • FloatType et DoubleType : Nombres à virgule flottante pour les valeurs décimales
    • Ex., 3.14159
  • StringType : Utilisé pour les données textuelles ou chaînes
    • Ex., "Ceci est un exemple de chaîne."
  • ...
Introduction à PySpark

Syntaxe des types de données pour les DataFrames PySpark

# Importer les types nécessaires en tant que classes
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# Construire le schéma
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# Définir le schéma
df = spark.createDataFrame(data, schema=schema)
Introduction à PySpark

Opérations DataFrame - sélection et filtrage

  • Utilisez .select() pour choisir des colonnes spécifiques
  • Utilisez .filter() ou .where() pour filtrer les lignes selon des conditions
  • Utilisez .sort() pour trier par une collection de colonnes
# Sélectionner et afficher uniquement les colonnes nom et âge
df.select("name", "age").show()
# Filtrer sur âge > 30
df.filter(df["age"] > 30).show()
# Utiliser Where pour filtrer une valeur spécifique
df.where(df["age"] == 30).show()
# Utiliser Sort pour trier par âge
df.sort("age", ascending=False).show()
Introduction à PySpark

Tri et suppression des valeurs manquantes

  • Trier les données avec .sort() ou .orderBy()
  • Utilisez na.drop() pour supprimer les lignes avec des valeurs nulles
# Trier en utilisant la colonne âge
df.sort("age", ascending=False).show()

# Supprimer les valeurs manquantes
df.na.drop().show()

Introduction à PySpark

Aide-mémoire

  • spark.read_json(): Charger des données depuis JSON
  • spark.read.schema(): Définir explicitement les schémas
  • .na.drop(): Supprimer les lignes avec des valeurs manquantes
  • .select(), .filter(), .sort(), .orderBy(): Fonctions de manipulation de données de base
Introduction à PySpark

Passons à la pratique !

Introduction à PySpark

Preparing Video For Download...