Compartir vía


barajar

Genera una permutación aleatoria de la matriz especificada. La función shuffle no es determinista, lo que significa que el orden de la matriz de salida puede ser diferente para cada ejecución.

Syntax

from pyspark.sql import functions as sf

sf.shuffle(col, seed=None)

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Nombre de la columna o expresión que se va a ordenar aleatoriamente.
seed pyspark.sql.Column o int, opcional Valor de inicialización para el generador aleatorio.

Devoluciones

pyspark.sql.Column: una nueva columna que contiene una matriz de elementos en orden aleatorio.

Examples

Ejemplo 1: Orden aleatorio de una matriz simple

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]|
+-------------+-------------+

Ejemplo 2: Orden aleatorio de una matriz con valores NULL

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]|
+----------------+----------------+

Ejemplo 3: Orden aleatorio de una matriz con 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]|
+------------------+------------------+