Skip to content

min_by(col, ord)

Описание

Функция min_by() возвращает значение из столбца col, соответствующее минимальному значению в столбце ord. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col: Column - столбец, значение которого нужно вернуть
  • ord: Column - столбец для определения минимального значения

Возвращаемое значение

Тип значения из столбца col - значение, соответствующее минимальному значению в ord

Пример использования

from pyspark.sql.functions import min_by
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("min_by_example").getOrCreate()

# Создаем DataFrame
data = [
    ("A", "X", 1),
    ("A", "Y", 2),
    ("A", "Z", 3),
    ("B", "W", 4),
    ("B", "V", 5),
    ("B", "U", 6),
    ("B", "T", None)
]
df = spark.createDataFrame(data, ["group", "name", "value"])

# Находим имя с минимальным значением
result = df.groupBy("group").agg(
    min_by("name", "value").alias("min_name")
).show()

# Результат:
# +-----+--------+
# |group|min_name|
# +-----+--------+
# |A    |X       |
# |B    |W       |
# +-----+--------+

Примечания

  • NULL значения в столбце ord игнорируются при поиске минимума
  • Для поиска значения, соответствующего максимальному значению, используйте max_by()
  • Для поиска просто минимального значения используйте min()
  • Для поиска просто максимального значения используйте max()