Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Megkeresi az adott érték első előfordulásának helyét az adott tömbben. Null értéket ad vissza, ha bármelyik argumentum null értékű. A pozíció nem nulla alapú, hanem 1 alapú index. 0 értéket ad vissza, ha a megadott érték nem található a tömbben.
Szemantika
from pyspark.sql import functions as sf
sf.array_position(col, value)
Paraméterek
| Paraméter | Típus | Description |
|---|---|---|
col |
pyspark.sql.Column vagy str |
Céloszlop, amelyen dolgozni szeretne. |
value |
Bármely | Keresendő érték vagy oszlopkifejezés. |
Visszatérítések
pyspark.sql.Column: az érték pozíciója az adott tömbben, ha található, és 0 egyéb esetben.
Példák
1. példa: Egy sztring pozíciójának megkeresése egy sztringtömbben
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|
+-----------------------+
2. példa: Egy sztring pozíciójának megkeresése üres tömbben
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|
+-----------------------+
3. példa: Egész szám pozíciójának megkeresése egész számok tömbjében
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|
+-----------------------+
4. példa: Nem létező érték helyének megkeresése tömbben
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|
+-----------------------+
5. példa: Érték pozíciójának megkeresése null értékekkel rendelkező tömbben
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|
+-----------------------+
6. példa: Az oszlop értékének pozíciójának megkeresése egész számok tömbjében
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|
+-------------------------+