array_position

Verilen dizide verilen değerin ilk oluşumunun konumunu bulur. Bağımsız değişkenlerden biri null ise null döndürür. Konum sıfır tabanlı değil, 1 tabanlı dizindir. Verilen değer dizide bulunamazsa 0 döndürür.

Sözdizimi

from pyspark.sql import functions as sf

sf.array_position(col, value)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Üzerinde çalışacak hedef sütun.
value Herhangi biri Aranacak değer veya Sütun ifadesi.

İade

pyspark.sql.Column: bulunursa verilen dizideki değerin konumu ve aksi takdirde 0.

Örnekler

Örnek 1: Dize dizisindeki bir dizenin konumunu bulma

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["c", "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "a")).show()
+-----------------------+
|array_position(data, a)|
+-----------------------+
|                      3|
+-----------------------+

Örnek 2: Boş bir dizideki bir dizenin konumunu bulma

from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, StringType, StructField, StructType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_position(df.data, "a")).show()
+-----------------------+
|array_position(data, a)|
+-----------------------+
|                      0|
+-----------------------+

Örnek 3: Bir tamsayı dizisindeki tamsayı konumunu bulma

from pyspark.sql import functions as sf
df = spark.createDataFrame([([1, 2, 3],)], ['data'])
df.select(sf.array_position(df.data, 2)).show()
+-----------------------+
|array_position(data, 2)|
+-----------------------+
|                      2|
+-----------------------+

Örnek 4: Dizide var olmayan bir değerin konumunu bulma

from pyspark.sql import functions as sf
df = spark.createDataFrame([(["c", "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "d")).show()
+-----------------------+
|array_position(data, d)|
+-----------------------+
|                      0|
+-----------------------+

Örnek 5: Null değer içeren bir dizideki bir değerin konumunu bulma

from pyspark.sql import functions as sf
df = spark.createDataFrame([([None, "b", "a"],)], ['data'])
df.select(sf.array_position(df.data, "a")).show()
+-----------------------+
|array_position(data, a)|
+-----------------------+
|                      3|
+-----------------------+

Örnek 6: Bir tamsayı dizisinde sütun değerinin konumunu bulma

from pyspark.sql import functions as sf
df = spark.createDataFrame([([10, 20, 30], 20)], ['data', 'col'])
df.select(sf.array_position(df.data, df.col)).show()
+-------------------------+
|array_position(data, col)|
+-------------------------+
|                        2|
+-------------------------+