シャッフル
指定された配列のランダムな順列を生成します。シャッフル関数は非決定論的であるため、出力配列の順序は実行ごとに異なる場合があります。
構文
Python
from pyspark.sql import functions as sf
sf.shuffle(col, seed=None)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| シャッフルする列または式の名前。 |
|
| 乱数ジェネレータのシード値。 |
戻り値
pyspark.sql.Column: ランダムな順序で要素の配列を含む新しい列。
例
例1 : 単純な配列のシャッフル
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]|
+-------------+-------------+
例2 : null値を含む配列のシャッフル
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]|
+----------------+----------------+
例3 : 重複した値を持つ配列をシャッフルする
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]|
+------------------+------------------+