メインコンテンツまでスキップ

ソート配列

配列要素の自然な順序に従って、入力配列を昇順または降順に並べ替えます。null 要素は、返される配列の先頭に昇順で配置され、返される配列の末尾に降順で配置されます。

構文

Python
from pyspark.sql import functions as sf

sf.sort_array(col, asc=True)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または文字列

列または式の名前。

asc

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