Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt ein Column Objekt für eine SKALAR-Unterabfrage zurück, die genau eine Zeile und eine Spalte enthält.
Syntax
scalar()
Rückkehr
Column: Ein Column Objekt, das eine SKALAR-Unterabfrage darstellt.
Hinweise
Die scalar() Methode ist nützlich, um ein Column Objekt zu extrahieren, das einen skalaren Wert aus einem DataFrame darstellt, insbesondere, wenn der DataFrame aus einer Aggregation oder einer Einzelwertberechnung resultiert. Diese zurückgegebene Column Kann dann direkt in select Klauseln oder als Prädikate in Filtern im äußeren DataFrame verwendet werden, wodurch dynamische Datenfilterung und Berechnungen basierend auf skalaren Werten ermöglicht werden.
Beispiele
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|
# +-----+------+-------------+