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

n番目の値

ウィンドウ関数: ウィンドウ フレームのoffset行目 (1 から数えて) の値を返します。ウィンドウ フレームのサイズがoffset行未満の場合はnull返します。

ignoreNullsが true に設定されている場合、 offset番目の null 以外の値を返します。すべての値が null の場合、null が返されます。

これは SQL の nth_value 関数と同等です。

構文

Python
from pyspark.sql import functions as sf

sf.nth_value(col, offset, ignoreNulls=False)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

列または式の名前。

offset

int

値として使用する行数。

ignoreNulls

bool、オプション

どの行を使用するかを決定する際に、N 番目の値が null をスキップすることを示します。

パラメーター

Type

説明

col

pyspark.sql.Column または列名

列または式の名前。

offset

int

値として使用する行数。

ignoreNulls

bool、オプション

どの行を使用するかを決定する際に、N 番目の値が null をスキップすることを示します。

戻り値

pyspark.sql.Column: n 行目の値。

例1 : ウィンドウフレームの最初の値を取得する

Python
from pyspark.sql import functions as sf
from pyspark.sql import Window
df = spark.createDataFrame(
[("a", 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["c1", "c2"])
df.show()
Output
+---+---+
| c1| c2|
+---+---+
| a| 1|
| a| 2|
| a| 3|
| b| 8|
| b| 2|
+---+---+
Python
w = Window.partitionBy("c1").orderBy("c2")
df.withColumn("nth_value", sf.nth_value("c2", 1).over(w)).show()
Output
+---+---+---------+
| c1| c2|nth_value|
+---+---+---------+
| a| 1| 1|
| a| 2| 1|
| a| 3| 1|
| b| 2| 2|
| b| 8| 2|
+---+---+---------+

例2 : ウィンドウフレームの2番目の値を取得する

Python
from pyspark.sql import functions as sf
from pyspark.sql import Window
df = spark.createDataFrame(
[("a", 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["c1", "c2"])
w = Window.partitionBy("c1").orderBy("c2")
df.withColumn("nth_value", sf.nth_value("c2", 2).over(w)).show()
Output
+---+---+---------+
| c1| c2|nth_value|
+---+---+---------+
| a| 1| NULL|
| a| 2| 2|
| a| 3| 2|
| b| 2| NULL|
| b| 8| 8|
+---+---+---------+
このページの見出し