Поделиться через


First_value

Возвращает первое значение col для группы строк. Он вернет первое значение, отличное от NULL, которое отображается, если ignoreNulls задано значение true. Если все значения имеют значение NULL, возвращается значение NULL.

Синтаксис

from pyspark.sql import functions as sf

sf.first_value(col, ignoreNulls=None)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Целевой столбец для работы.
ignoreNulls pyspark.sql.Column или bool, необязательный Если первое значение равно NULL, найдите первое значение, отличное от NULL.

Возвраты

pyspark.sql.Column: некоторое col значение для группы строк.

Примеры

Пример 1. Получение первого значения без пропуска значений NULL

from pyspark.sql import functions as sf
spark.createDataFrame(
    [(None, 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["a", "b"]
).select(sf.first_value('a'), sf.first_value('b')).show()
+--------------+--------------+
|first_value(a)|first_value(b)|
+--------------+--------------+
|          NULL|             1|
+--------------+--------------+

Пример 2. Получение первого значения, игнорирующего значения NULL

from pyspark.sql import functions as sf
spark.createDataFrame(
    [(None, 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["a", "b"]
).select(sf.first_value('a', True), sf.first_value('b', True)).show()
+--------------+--------------+
|first_value(a)|first_value(b)|
+--------------+--------------+
|             a|             1|
+--------------+--------------+