Поделиться через


перемешивать

Создает случайное перемещение заданного массива. Функция перетасовки не детерминирована, то есть порядок выходного массива может отличаться для каждого выполнения.

Синтаксис

from pyspark.sql import functions as sf

sf.shuffle(col, seed=None)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Имя столбца или выражения, который необходимо перетасовать.
seed pyspark.sql.Column или int, необязательный Начальное значение для случайного генератора.

Возвраты

pyspark.sql.Column: новый столбец, содержащий массив элементов в случайном порядке.

Примеры

Пример 1. Перемешивание простого массива

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

Пример 2. Перемешивание массива со значениями 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]|
+----------------+----------------+

Пример 3. Перемешивание массива с повторяющимися значениями

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