Aller au contenu principal

brassage

Génère une permutation aléatoire du tableau donné. La fonction de mélange est non déterministe, ce qui signifie que l'ordre du tableau de sortie peut être différent à chaque exécution.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.shuffle(col, seed=None)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

Le nom de la colonne ou de l'expression à mélanger.

seed

pyspark.sql.Column ou int, facultatif

Valeur de départ pour le générateur aléatoire. Ajouté dans Databricks Runtime 16.1

parameter

Type

Description

col

pyspark.sql.Column ou str

Le nom de la colonne ou de l'expression à mélanger.

seed

pyspark.sql.Column ou int, facultatif

Valeur de départ pour le générateur aléatoire. Ajouté dans Databricks Runtime 16.1

Renvoie

pyspark.sql.Column: Une nouvelle colonne qui contient un tableau d'éléments dans un ordre aléatoire.

Exemples

Exemple 1 : Mélanger un tableau simple

Python
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()
Output
+-------------+-------------+
| data|shuffle(data)|
+-------------+-------------+
|[1, 20, 3, 5]|[5, 1, 20, 3]|
+-------------+-------------+

**Exemple 2** : Mélanger un tableau avec des valeurs nulles

Python
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()
Output
+----------------+----------------+
| data| shuffle(data)|
+----------------+----------------+
|[1, 20, NULL, 5]|[NULL, 5, 20, 1]|
+----------------+----------------+

Exemple 3 : Mélange d'un tableau avec des valeurs en double

Python
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()
Output
+------------------+------------------+
| data| shuffle(data)|
+------------------+------------------+
|[1, 2, 2, 3, 3, 3]|[2, 3, 3, 1, 2, 3]|
+------------------+------------------+