入力の配列列を、開始インデックスから指定した長さ分スライスして、新しい配列列を返します。 インデックスは 1 から始まり、配列の末尾からインデックスに負の値を指定できます。 長さは、結果の配列内の要素の数を指定します。
構文
from pyspark.sql import functions as sf
sf.slice(x, start, length)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
x |
pyspark.sql.Column または str |
スライスする配列列または列名を入力します。 |
start |
pyspark.sql.Column、str、または int |
スライス操作の開始インデックス。 負の場合は、配列の末尾からインデックスを開始します。 |
length |
pyspark.sql.Column、str、または int |
スライスの長さ。結果の配列内の要素の数を表します。 |
返品ポリシー
pyspark.sql.Column: 配列型の新しい Column オブジェクト。各値は、入力列の対応するリストのスライスです。
例示
例 1: スライス関数の基本的な使用方法。
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()
+--------------+
|slice(x, 2, 2)|
+--------------+
| [2, 3]|
| [5]|
+--------------+
例 2: 負の開始インデックスを使用したスライス。
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()
+---------------+
|slice(x, -1, 1)|
+---------------+
| [3]|
| [5]|
+---------------+
例 3: 開始と長さの列入力を含む Slice 関数。
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()
+-----------------------+
|slice(x, start, length)|
+-----------------------+
| [2, 3]|
| [4, 5]|
+-----------------------+