scalaire

Retourne un Column objet pour une sous-requête SCALAR contenant exactement une ligne et une colonne.

Syntaxe

scalar()

Retours

Column: objet Column représentant une sous-requête SCALAR.

Remarques

La scalar() méthode est utile pour extraire un Column objet qui représente une valeur scalaire à partir d’un DataFrame, en particulier lorsque le DataFrame résulte d’une agrégation ou d’un calcul à valeur unique. Cela peut Column ensuite être utilisé directement dans select des clauses ou en tant que prédicats dans des filtres sur le DataFrame externe, ce qui permet le filtrage et les calculs dynamiques des données en fonction des valeurs scalaires.

Exemples

data = [
    (1, "Alice", 45000, 101), (2, "Bob", 54000, 101), (3, "Charlie", 29000, 102),
    (4, "David", 61000, 102), (5, "Eve", 48000, 101),
]
employees = spark.createDataFrame(data, ["id", "name", "salary", "department_id"])

from pyspark.sql import functions as sf
employees.where(
    sf.col("salary") > employees.select(sf.avg("salary")).scalar()
).select("name", "salary", "department_id").orderBy("name").show()
# +-----+------+-------------+
# | name|salary|department_id|
# +-----+------+-------------+
# |  Bob| 54000|          101|
# |David| 61000|          102|
# |  Eve| 48000|          101|
# +-----+------+-------------+

employees.alias("e1").where(
    sf.col("salary")
    > employees.alias("e2").where(
        sf.col("e2.department_id") == sf.col("e1.department_id").outer()
    ).select(sf.avg("salary")).scalar()
).select("name", "salary", "department_id").orderBy("name").show()
# +-----+------+-------------+
# | name|salary|department_id|
# +-----+------+-------------+
# |  Bob| 54000|          101|
# |David| 61000|          102|
# +-----+------+-------------+