Compartilhar via


embaralhar

Gera uma permutação aleatória da matriz fornecida. A função shuffle não é determinística, o que significa que a ordem da matriz de saída pode ser diferente para cada execução.

Sintaxe

from pyspark.sql import functions as sf

sf.shuffle(col, seed=None)

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str O nome da coluna ou expressão a ser embaralhada.
seed pyspark.sql.Column ou int, opcional Valor de semente para o gerador aleatório.

Devoluções

pyspark.sql.Column: uma nova coluna que contém uma matriz de elementos em ordem aleatória.

Exemplos

Exemplo 1: embaralhar uma matriz simples

import pyspark.sql.functions as sf
df = spark.sql("SELECT ARRAY(1, 20, 3, 5) AS data")
df.select("*", sf.shuffle(df.data, sf.lit(123))).show()
+-------------+-------------+
|         data|shuffle(data)|
+-------------+-------------+
|[1, 20, 3, 5]|[5, 1, 20, 3]|
+-------------+-------------+

Exemplo 2: embaralhar uma matriz com valores nulos

import pyspark.sql.functions as sf
df = spark.sql("SELECT ARRAY(1, 20, NULL, 5) AS data")
df.select("*", sf.shuffle(sf.col("data"), 234)).show()
+----------------+----------------+
|            data|   shuffle(data)|
+----------------+----------------+
|[1, 20, NULL, 5]|[NULL, 5, 20, 1]|
+----------------+----------------+

Exemplo 3: embaralhar uma matriz com valores duplicados

import pyspark.sql.functions as sf
df = spark.sql("SELECT ARRAY(1, 2, 2, 3, 3, 3) AS data")
df.select("*", sf.shuffle("data", 345)).show()
+------------------+------------------+
|              data|     shuffle(data)|
+------------------+------------------+
|[1, 2, 2, 3, 3, 3]|[2, 3, 3, 1, 2, 3]|
+------------------+------------------+