max_by(col, ord)
Описание
Функция max_by()
возвращает значение из столбца col, соответствующее максимальному значению в столбце ord. Это агрегатная функция, которая должна использоваться с groupBy()
.
Параметры
col
: Column - столбец, значение которого нужно вернутьord
: Column - столбец для определения максимального значения
Возвращаемое значение
Тип значения из столбца col - значение, соответствующее максимальному значению в ord
Пример использования
from pyspark.sql.functions import max_by
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("max_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(
max_by("name", "value").alias("max_name")
).show()
# Результат:
# +-----+--------+
# |group|max_name|
# +-----+--------+
# |A |Z |
# |B |U |
# +-----+--------+