Vue d'ensemble
PySpark 3.3, publié le 17 juin 2022, introduit les UDFs optimisées Arrow pour de meilleures performances de transfert de données.
Fonctionnalités principales
UDFs optimisées Arrow
Les UDFs Arrow utilisent Apache Arrow pour le transfert de données entre la JVM et Python, offrant des performances jusqu'à 100x supérieures.
python
from pyspark.sql import SparkSession
from pyspark.sql.functions import pandas_udf
import pandas as pd
spark = SparkSession.builder.getOrCreate()
@pandas_udf('double')
def normaliser(s: pd.Series) -> pd.Series:
return (s - s.mean()) / s.std()
df = spark.range(1000).selectExpr('id as valeur')
df.select(normaliser('valeur')).show(5)
Améliorations Spark SQL
Spark SQL bénéficie de nouvelles optimisations de requêtes et d'un meilleur support des types complexes comme les tableaux et les structures.
python
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
spark = SparkSession.builder.getOrCreate()
df = spark.createDataFrame([
('Alice', [90, 85, 92]),
('Bob', [78, 88, 95]),
], ['nom', 'notes'])
# Opérations sur tableaux
df.select(
'nom',
F.aggregate('notes', F.lit(0), lambda acc, x: acc + x).alias('total'),
).show()
