Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Column Возвращает объект для вложенных запросов SCALAR, содержащих ровно одну строку и один столбец.
Синтаксис
scalar()
Возвраты
Column
Column: объект, представляющий вложенный запрос SCALAR.
Примечания
Этот scalar() метод полезен для извлечения Column объекта, представляющего скалярное значение из кадра данных, особенно если данные кадра данных результаты из агрегирования или вычисления с одним значением. Затем это Column можно использовать непосредственно в select предложениях или в качестве предикатов в фильтрах на внешнем кадре данных, что позволяет динамически фильтровать и вычисления данных на основе скалярных значений.
Примеры
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|
# +-----+------+-------------+