次の方法で共有


スライス

入力の配列列を、開始インデックスから指定した長さ分スライスして、新しい配列列を返します。 インデックスは 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]|
+-----------------------+