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

スライス

入力配列列を開始インデックスから特定の長さにスライスして、新しい配列列を返します。インデックスは 1 から始まり、配列の末尾からのインデックスには負の値を指定できます。長さは、結果の配列内の要素の数を指定します。

構文

Python
from pyspark.sql import functions as sf

sf.slice(x, start, length)

パラメーター

パラメーター

Type

説明

x

pyspark.sql.Column または文字列

スライスする配列の列または列名を入力します。

start

pyspark.sql.Column、文字列、または整数

スライス操作の開始インデックス。負の場合、インデックスは配列の末尾から開始されます。

length

pyspark.sql.Column、文字列、または整数

結果の配列内の要素数を表すスライスの長さ。

戻り値

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