Bagikan melalui


mengocok/menyeret-nyeret

Menghasilkan permutasi acak dari array yang diberikan. Fungsi acak tidak deterministik, yang berarti urutan array output dapat berbeda untuk setiap eksekusi.

Syntax

from pyspark.sql import functions as sf

sf.shuffle(col, seed=None)

Parameter-parameternya

Pengaturan Tipe Description
col pyspark.sql.Column atau str Nama kolom atau ekspresi yang akan diacak.
seed pyspark.sql.Column atau int, opsional Nilai benih untuk generator acak.

Pengembalian Barang

pyspark.sql.Column: Kolom baru yang berisi array elemen dalam urutan acak.

Examples

Contoh 1: Mengacak array sederhana

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

Contoh 2: Mengacak array dengan nilai 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]|
+----------------+----------------+

Contoh 3: Mengacak array dengan nilai duplikat

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