コレクション関数: 入力配列を昇順で並べ替えます。 入力配列の要素は並べ替え可能である必要があります。 Null 要素は、返された配列の末尾に配置されます。 Spark Connect をサポートします。
対応する Databricks SQL 関数については、 array_sort 関数を参照してください。
構文
from pyspark.databricks.sql import functions as dbf
dbf.array_sort(col=<col>, comparator=<comparator>)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
col |
pyspark.sql.Column または str |
列または式の名前。 |
comparator |
callable任意 |
1 番目の要素が 2 番目の要素より小さい、等しい、または大きい場合に、負の整数、0、または正の整数を返す 2 進関数。 比較関数が null を返した場合、関数は失敗し、エラーが発生します。 |
返品ポリシー
pyspark.sql.Column: 並べ替えられた配列。
例示
例 1: 既定の昇順で配列を並べ替える
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([([2, 1, None, 3],),([1],),([],)], ['data'])
df.select(dbf.array_sort(df.data).alias('r')).collect()
[Row(r=[1, 2, 3, None]), Row(r=[1]), Row(r=[])]
例 2: カスタム比較子を使用して配列を並べ替える
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(["foo", "foobar", None, "bar"],),(["foo"],),([],)], ['data'])
df.select(dbf.array_sort(
"data",
lambda x, y: dbf.when(x.isNull() | y.isNull(), dbf.lit(0)).otherwise(dbf.length(y) - dbf.length(x))
).alias("r")).collect()
[Row(r=['foobar', 'foo', None, 'bar']), Row(r=['foo']), Row(r=[])]