Função RAND

A função RAND gera um número real aleatório entre 0 e 1. A função aceita um parâmetro inteiro opcional, que faz com que o mesmo conjunto de números aleatórios seja gerado em cada execução de job.
  • Essa função gera valores do tipo Decimal com 15 dígitos de precisão após o ponto decimal. Se quiser ver todos os dígitos no valor gerado, talvez seja necessário aplicar um formato de número diferente. Consulte Função NUMFORMAT.
  • Novos números aleatórios são gerados no navegador após cada atualização dele e entre as execuções de job subsequentes.

Como opção, também é possível inserir um inteiro como um parâmetro.

  • Quando esse valor está presente, o valor de semente é usado como parte do gerador de números aleatórios de modo que a saída dele seja um conjunto de valores pseudoaleatórios consistentes entre as execuções de job.
  • Quando o navegador é atualizado e o valor de semente está presente, os números aleatórios permanecem consistentes.

Uso básico

derive type:single value: RAND() as:'random'

Saída: gera um número aleatório entre 0 e 1 na nova função random para cada linha.

Sintaxe

Não há argumentos para essa função.

Exemplos

Exemplo: valores aleatórios

No exemplo a seguir, a coluna random é gerada pela função RAND:

derive type:single value:RAND() as:'random'

fonterandom
A

0.516845703365675

B

0.71118736300207

C

0.758686066027118

D

0.640146255791255

Exemplo: funções de verificação de tipo

A função RAND normalmente é usada para introduzir algum tipo de aleatoriedade nos seus dados. No exemplo a seguir, ela é usada para executar a amostragem dentro de seu conjunto de dados mais amplo.

Dica: tenha em mente que, para conjuntos de dados maiores, o aplicativo exibe apenas uma amostra deles. Esse método de randomização é aplicado ao conjunto de dados completo durante a execução do job.


Fonte:

O objetivo é extrair uma amostra aleatória de 20% do conjunto de pedidos para estudo posterior:

OrderIdQtyProdId
100130Widgets
100210Grandes widgets
10035Grandes widgets
100440Widgets
100580Pequenos widgets
100620Widgets
1007100Pequenos widgets

Transformação:

Você pode usar a transformação a seguir para gerar um número inteiro aleatório de um a 10:

derive type:single value:round(RAND() * 10) as:'random'

Agora você pode usar a transformação a seguir para manter apenas as linhas que contêm valores aleatórios que estão nos 20% superiores, em que o valor é 9 ou 10:

keep row:(random > 8)

Resultados:

OBSERVAÇÃO: como os resultados são aleatorizados, seus resultados podem variar.

OrderIdQtyProdIdrandom
100580Pequenos widgets9
1007100Pequenos widgets10

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.