src.pipeline.aggregator
aggregator.py — Module d'agrégation des sinistres par client
1""" 2aggregator.py — Module d'agrégation des sinistres par client 3""" 4 5from pyspark.sql import DataFrame 6from pyspark.sql.functions import avg, count 7from pyspark.sql.functions import sum as _sum 8 9 10def aggregate_data(df: DataFrame) -> DataFrame: 11 """ 12 Agrège les données par client : 13 - total des sinistres 14 - moyenne des montants 15 - nombre de sinistres 16 17 Args: 18 df (DataFrame): DataFrame Spark nettoyé contenant les colonnes 'client_id' et 'montant_clean' 19 20 Returns: 21 DataFrame: DataFrame agrégé par client 22 """ 23 return df.groupBy("client_id").agg( 24 _sum("montant_clean").alias("total"), 25 avg("montant_clean").alias("moyenne"), 26 count("*").alias("nb_sinistres"), 27 )
def
aggregate_data(df: pyspark.sql.dataframe.DataFrame) -> pyspark.sql.dataframe.DataFrame:
11def aggregate_data(df: DataFrame) -> DataFrame: 12 """ 13 Agrège les données par client : 14 - total des sinistres 15 - moyenne des montants 16 - nombre de sinistres 17 18 Args: 19 df (DataFrame): DataFrame Spark nettoyé contenant les colonnes 'client_id' et 'montant_clean' 20 21 Returns: 22 DataFrame: DataFrame agrégé par client 23 """ 24 return df.groupBy("client_id").agg( 25 _sum("montant_clean").alias("total"), 26 avg("montant_clean").alias("moyenne"), 27 count("*").alias("nb_sinistres"), 28 )
Agrège les données par client :
- total des sinistres
- moyenne des montants
- nombre de sinistres
Args: df (DataFrame): DataFrame Spark nettoyé contenant les colonnes 'client_id' et 'montant_clean'
Returns: DataFrame: DataFrame agrégé par client