Função ML.HASH_BUCKETIZE

Neste documento, descrevemos a função ML.HASH_BUCKETIZE, que permite converter uma expressão de string em um hash determinístico e, em seguida, dividi-lo em intervalos pelo valor do módulo desse hash.

Sintaxe

ML.HASH_BUCKETIZE(string_expression, hash_bucket_size)

Argumentos

ML.HASH_BUCKETIZE usa os seguintes argumentos:

  • string_expression: a expressão STRING a ser dividida em buckets.
  • hash_bucket_size: um valor INT64 que especifica o número de buckets a serem criados. Esse valor precisa ser maior ou igual a 0. Se hash_bucket_size for igual a 0, a função só gerará hashes na string sem dividir o valor de hash em buckets.

Saída

ML.HASH_BUCKETIZE: um valor INT64 que identifica o bucket.

Exemplo

O exemplo a seguir divide expressões de string em três buckets:

SELECT
  f, ML.HASH_BUCKETIZE(f, 3) AS bucket
FROM UNNEST(['a', 'b', 'c', 'd']) AS f;

A saída será assim:

+---+--------+
| f | bucket |
+---+--------+
| a |   0    |
+---+--------+
| b |   1    |
+---+--------+
| c |   1    |
+---+--------+
| d |   2    |
+------------+

A seguir