Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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|
# +-----+------+-------------+