PySpark SQL: lire Parquet et agréger
objectif
Expliquer et montrer comment charger un dataset Parquet et faire des agrégations SQL.
code minimal
from pyspark.sql import SparkSession, functions as F
spark = SparkSession.builder.appName("demo").getOrCreate()
df = spark.read.parquet("s3a://bucket/data/2025-08-01/")
agg = df.groupBy("country").agg(F.count("*").alias("n"), F.avg("price").alias("avg_price"))
agg.orderBy(F.desc("n")).show(5, truncate=False)
utilisation
# requête SQL
df.createOrReplaceTempView("t")
spark.sql("SELECT country, COUNT(*) n FROM t GROUP BY country ORDER BY n DESC LIMIT 10").show()
variante(s) utile(s)
# lecture de colonnes projetées pour performance
df2 = spark.read.parquet("s3a://bucket/data/").select("country","price")
notes
- Utilisez des colonnes projetées pour réduire l’I/O.
- Configurer s3a credentials via spark.hadoop.* (ne jamais hardcoder).