Função FILL

Preenche todos os valores ausentes ou nulos na coluna especificada com o valor não vazio mais recente, conforme determinado pela janela de colunas especificada antes e após o valor em branco.
  • A linha da qual o valor será extraído é determinada pela ordem em que as linhas são organizadas no momento em que a transformação é executada. Se você estiver trabalhando em uma amostra do conjunto de dados gerada aleatoriamente, os valores que você verá para esta função poderão não corresponder aos valores que serão gerados no conjunto de dados completo durante a execução do job.

  • Além da coluna em que a função será aplicada, a função aceita dois outros parâmetros:
    • O primeiro parâmetro inteiro define o número de linhas antes da linha que está sendo testada para procurar um valor não vazio.
    • O segundo parâmetro inteiro define o número de linhas após a linha que está sendo testada para procurar um valor não vazio.
    • Se nenhum valor não vazio for encontrado nessas linhas, o valor vazio permanecerá vazio.
    • Os valores padrão são -1 e 0, respectivamente, que executam uma pesquisa ilimitada antes da linha em busca de um valor não vazio a ser usado para preencher.
  • Use os parâmetros group e order para definir os grupos de registros e a ordem desses registros em que essa transformação é aplicada.
  • Essa função funciona com as seguintes transformações:

Uso básico

window value:FILL(myNumber,-1,0) order:'Date'

Saída: gera uma nova coluna que contém todos os valores da coluna myNumber com todas as células nulas preenchidas pelo valor não vazio mais recente, conforme determinado pela coluna Date.

window value:FILL(myNumber,-5,4) order:'Date'

Saída: gera uma nova coluna que contém todos os valores da coluna myNumber, com todas as células nulas preenchidas pelo valor não vazio mais recente na janela de cinco colunas antes e quatro colunas após a coluna atual.

Sintaxe

window value:FILL(col_ref, int_rows_before, int_rows_after) order: order_col [group: group_col]

ArgumentoObrigatório?Tipo de dadosDescrição
col_refSstringNome da coluna que tem valores aplicados à função
int_rows_beforeSnúmero inteiro

Número de linhas antes da linha atual em que serão procuradas o valor não vazio. O padrão é -1, que varre procura em todas as linhas anteriores.

int_rows_afterSnúmero inteiroNúmero de linhas após a linha atual em que serão procuradas o valor não vazio. O padrão é 0, que não procura em nenhuma linha após a atual.

Para mais informações sobre os parâmetros order e group, consulte Transformação Window.

Para mais informações sobre os padrões de sintaxe, consulte Notas de sintaxe da documentação da linguagem.

col_ref

Nome da coluna cujos valores são preenchidos quando nulo.

  • Várias colunas e caracteres curinga não são aceitos.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString (referência de coluna)myColumn

int_rows_before

Número de linhas antes da atual em que será procurado o valor não vazio mais recente.

  • O valor padrão é -1, que procura em todas as linhas anteriores.
  • 0 não procura antes da linha atual.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimNúmero inteiro5

int_rows_after

Número de linhas após a atual em que será procurado o valor não vazio mais recente.

  • O valor padrão é 0, que não procura em linhas após a atual.
  • -1 procura em todas as linhas seguintes.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimNúmero inteiro5

Exemplos

Exemplo: preencher com valores de previsão trimestral

Os dados de vendas mensais incluem o valor vendido a cada mês. No entanto, o sistema de origem apenas fornece a previsão trimestral como parte dos dados para o primeiro mês de cada trimestre. Você pode usar a função FILL para adicionar a previsão anterior aos dados de cada mês.

Origem:

DataValorPrevisão_Trimestre
31/01/155231.400
28/02/15135
31/03/15824
30/04/153051.500
31/05/15763
30/06/15421
31/07/156061.600
31/08/15477
30/09/15785
31/10/154431.700
30/11/15622
31/12/15518

Transformação:

Você pode usar a seguinte transformação para preencher o valor de previsão anterior para cada mês em branco na coluna Forecast_Qtr. Observe que o parâmetro order precisa ser definido como Date para estabelecer a classificação adequada:

window value: FILL(Forecast_Qtr,-1,0) order: Date

Agora, exclua a coluna Forecast_Qtr e renomeie a coluna window gerada para o nome excluído.

Para ver seu progresso a cada mês, use a seguinte transformação, que calcula a previsão média para cada mês:

derive type:single value:NUMFORMAT((Forecast_Qtr/3),'####.##') as:'Forecast_Month_Avg'

Depois, você pode comparar esse valor com o valor Amount real para cada mês:

derive type:single value:NUMFORMAT(((Amount - Forecast_Month_Avg)/Forecast_Month_Avg)*100, '##.00') as:'MonthActualVForecast_Pct'

Resultados:

DataValorPrevisão_TrimestrePrevisão_mês_médiaRealVPrevisãoMês_Pct
31/01/155231.400466,6712,07
28/02/151351.400466,67-71,07
31/03/158241.400466,6776,57
30/04/153051.500500-39,00
31/05/157631.50050052,60
30/06/154211.500500-15,80
31/07/156061.600533,3313,63
31/08/154771.600533,33-1,56
30/09/157851.600533,3347,19
31/10/154431.700566,67-21,82
30/11/156221.700566,679,76
31/12/155181.700566,67-8,59

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.