Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Función window: devuelve el valor que es la offsetprimera fila del marco de ventana (contando de 1) y null si el tamaño del marco de ventana es menor que offset las filas.
Devolverá el offsetvalor distinto de NULL que ve cuando ignoreNulls se establece en true. Si todos los valores son null, se devuelve null.
Esto equivale a la función nth_value en SQL.
Syntax
from pyspark.sql import functions as sf
sf.nth_value(col, offset, ignoreNulls=False)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column o nombre de columna |
Nombre de columna o expresión. |
offset |
int | Número de filas que se van a usar como valor. |
ignoreNulls |
bool, opcional | Indica que el valor Nth debe omitir null en la determinación de la fila que se va a usar. |
Devoluciones
pyspark.sql.Column: valor de la nª fila.
Examples
Ejemplo 1: Obtener el primer valor en el marco de ventana
from pyspark.sql import functions as sf
from pyspark.sql import Window
df = spark.createDataFrame(
[("a", 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["c1", "c2"])
df.show()
+---+---+
| c1| c2|
+---+---+
| a| 1|
| a| 2|
| a| 3|
| b| 8|
| b| 2|
+---+---+
w = Window.partitionBy("c1").orderBy("c2")
df.withColumn("nth_value", sf.nth_value("c2", 1).over(w)).show()
+---+---+---------+
| c1| c2|nth_value|
+---+---+---------+
| a| 1| 1|
| a| 2| 1|
| a| 3| 1|
| b| 2| 2|
| b| 8| 2|
+---+---+---------+
Ejemplo 2: Obtención del segundo valor en el marco de ventana
from pyspark.sql import functions as sf
from pyspark.sql import Window
df = spark.createDataFrame(
[("a", 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["c1", "c2"])
w = Window.partitionBy("c1").orderBy("c2")
df.withColumn("nth_value", sf.nth_value("c2", 2).over(w)).show()
+---+---+---------+
| c1| c2|nth_value|
+---+---+---------+
| a| 1| NULL|
| a| 2| 2|
| a| 3| 2|
| b| 2| NULL|
| b| 8| 8|
+---+---+---------+