スライス
入力配列列を開始インデックスから特定の長さにスライスして、新しい配列列を返します。インデックスは 1 から始まり、配列の末尾からのインデックスには負の値を指定できます。長さは、結果の配列内の要素の数を指定します。
構文
Python
from pyspark.sql import functions as sf
sf.slice(x, start, length)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| スライスする配列の列または列名を入力します。 |
|
| スライス操作の開始インデックス。負の場合、インデックスは配列の末尾から開始されます。 |
|
| 結果の配列内の要素数を表すスライスの長さ。 |
戻り値
pyspark.sql.Column: 配列型の新しい列オブジェクト。各値は入力列の対応するリストのスライスです。
例
例 1 : スライス関数の基本的な使用方法。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],), ([4, 5],)], ['x'])
df.select(sf.slice(df.x, 2, 2)).show()
Output
+--------------+
|slice(x, 2, 2)|
+--------------+
| [2, 3]|
| [5]|
+--------------+
例 2 : 負の開始インデックスを使用したスライス。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],), ([4, 5],)], ['x'])
df.select(sf.slice(df.x, -1, 1)).show()
Output
+---------------+
|slice(x, -1, 1)|
+---------------+
| [3]|
| [5]|
+---------------+
例 3 : 開始と長さの列入力を持つスライス関数。
Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3], 2, 2), ([4, 5], 1, 3)], ['x', 'start', 'length'])
df.select(sf.slice(df.x, df.start, df.length)).show()
Output
+-----------------------+
|slice(x, start, length)|
+-----------------------+
| [2, 3]|
| [4, 5]|
+-----------------------+