

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de funciones de ventana SQL en lugar de join y groupBy
<a name="using-sql-window-functions"></a>

[Las funciones de ventana](https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-window.html) (Sparkdocumentación) realizan un cálculo sobre un grupo de filas, denominado *ventana*, que de alguna manera se relacionan con el registro actual. Por ejemplo, pueden estar en la misma partición o marco que la fila actual. Las funciones de ventana están integradas en Spark y son similares a las funciones de agregado. *Las funciones de agregado,* como `SUM` o `MAX`*,* funcionan en un grupo de filas y calculan un único valor de retorno para cada grupo. Las funciones de ventana son útiles para las tareas de procesamiento, como calcular una media móvil o acceder al valor de las filas en función de la posición relativa de la fila actual.

La Spark `groupBy` función recopila los datos en grupos y realiza funciones de agregación sobre los datos agrupados. Cuando se utiliza`groupBy`, primero agrega Spark parcialmente los datos y, a continuación, mezcla el conjunto de datos reducido. Al utilizar las funciones de ventana, se mezcla todo el conjunto de datos. Las funciones de ventana pueden proporcionar tiempos de ejecución más rápidos.

En conjuntos de datos muy grandes, si la cardinalidad de la columna es grande, se recomiendan las funciones de ventana. Sin embargo, si la cardinalidad de la columna es pequeña, la agregación de datos es pequeña y el resultado agregado se puede difundir en la combinación.