

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando funções de janela SQL em vez de join e groupBy
<a name="using-sql-window-functions"></a>

[As funções de janela](https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-window.html) (Sparkdocumentação) realizam um cálculo em um grupo de linhas, chamado de *janela*, que de alguma forma se relacionam com o registro atual. Por exemplo, eles podem estar na mesma partição ou quadro da linha atual. As funções de janela são incorporadas ao Spark e são semelhantes às funções agregadas. *Funções agregadas,* como `SUM` ou `MAX`*,* operam em um grupo de linhas e calculam um único valor de retorno para cada grupo. As funções de janela são úteis para processar tarefas, como calcular uma média móvel ou acessar o valor das linhas com base na posição relativa da linha atual.

A Spark `groupBy` função coleta dados em grupos e executa funções agregadas nos dados agrupados. Quando você usa`groupBy`, agrega Spark parcialmente os dados primeiro e depois embaralha o conjunto de dados reduzido. Quando você usa funções de janela, todo o conjunto de dados é embaralhado. As funções de janela podem fornecer tempos de execução mais rápidos.

Em conjuntos de dados muito grandes, se a cardinalidade da coluna for grande, as funções de janela serão recomendadas. No entanto, se a cardinalidade da coluna for pequena, a agregação de dados será pequena e o resultado agregado poderá ser transmitido na junção.