ソート配列
配列要素の自然な順序に従って、入力配列を昇順または降順に並べ替えます。null 要素は、返される配列の先頭に昇順で配置され、返される配列の末尾に降順で配置されます。
構文
Python
from pyspark.sql import functions as sf
sf.sort_array(col, asc=True)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 列または式の名前。 |
| bool、オプション | 昇順で並べ替えるか、降順で並べ替えるか。asc が True (デフォルト) の場合、並べ替えは昇順になります。False の場合は降順になります。 |
戻り値
pyspark.sql.Column: ソートされた配列。
例
例1 : 配列を昇順でソートする
Python
import pyspark.sql.functions as sf
df = spark.createDataFrame([([2, 1, None, 3],)], ['data'])
df.select(sf.sort_array(df.data)).show()
Output
+----------------------+
|sort_array(data, true)|
+----------------------+
| [NULL, 1, 2, 3]|
+----------------------+
例2 : 配列を降順でソートする
Python
import pyspark.sql.functions as sf
df = spark.createDataFrame([([2, 1, None, 3],)], ['data'])
df.select(sf.sort_array(df.data, asc=False)).show()
Output
+-----------------------+
|sort_array(data, false)|
+-----------------------+
| [3, 2, 1, NULL]|
+-----------------------+
例3 : 単一要素の配列をソートする
Python
import pyspark.sql.functions as sf
df = spark.createDataFrame([([1],)], ['data'])
df.select(sf.sort_array(df.data)).show()
Output
+----------------------+
|sort_array(data, true)|
+----------------------+
| [1]|
+----------------------+
例4 : 空の配列のソート
Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.sort_array(df.data)).show()
Output
+----------------------+
|sort_array(data, true)|
+----------------------+
| []|
+----------------------+
例5 : null値を含む配列のソート
Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([StructField("data", ArrayType(IntegerType()), True)])
df = spark.createDataFrame([([None, None, None],)], schema=schema)
df.select(sf.sort_array(df.data)).show()
Output
+----------------------+
|sort_array(data, true)|
+----------------------+
| [NULL, NULL, NULL]|
+----------------------+