스칼라

Column 정확히 하나의 행과 하나의 열을 포함하는 SCALAR 하위 쿼리에 대한 개체를 반환합니다.

문법

scalar()

Returns

Column Column: SCALAR 하위 쿼리를 나타내는 개체입니다.

Notes

scalar() 메서드는 데이터 프레임에서 스칼라 값을 나타내는 개체를 추출하는 Column 데 유용하며, 특히 DataFrame이 집계 또는 단일 값 계산에서 발생하는 경우에 유용합니다. 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|
# +-----+------+-------------+