skaler

Tam olarak bir Column satır ve bir sütun içeren bir SCALAR Alt Sorgusu için bir nesne döndürür.

Sözdizimi

scalar()

İadeler

Column Column: SCALAR alt sorgularını temsil eden nesne.

Notlar

scalar() yöntemi, özellikle DataFrame bir Column toplama veya tek değerli hesaplamadan elde edildiğinde, DataFrame'den skaler değeri temsil eden bir nesneyi ayıklamak için kullanışlıdır. Column Döndürülen bu değer daha sonra doğrudan yan tümcelerde select veya dış DataFrame'deki filtrelerde koşul olarak kullanılabilir ve dinamik veri filtrelemeyi ve skaler değerlere dayalı hesaplamaları etkinleştirir.

Örnekler

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|
# +-----+------+-------------+