Aller au contenu principal

UserDefinedTableFunction

Une fonction de table définie par l'utilisateur en Python.

Le constructeur de cette classe n'est pas censé être appelé directement. Utilisez pyspark.sql.functions.udtf pour créer une instance.

Syntaxe​

Python
from pyspark.sql.functions import udtf

@udtf(returnType="c1: int, c2: int")
class MyUDTF:
def eval(self, x: int):
yield x, x + 1

Propriétés​

Propriété

Description

returnType

Le type de retour de la fonction de table définie par l'utilisateur en tant que StructType, ou None si non spécifié.

Propriété

Description

returnType

Le type de retour de la fonction de table définie par l'utilisateur en tant que StructType, ou None si non spécifié.

Méthodes​

Méthode

Description

asDeterministic()

Met à jour la UserDefinedTableFunction en déterministe.

Méthode

Description

asDeterministic()

Met à jour la UserDefinedTableFunction en déterministe.

Exemples​

Python
from pyspark.sql.functions import lit, udtf

@udtf(returnType="c1: int, c2: int")
class PlusOne:
def eval(self, x: int):
yield x, x + 1

PlusOne(lit(1)).show()
Output
+---+---+
| c1| c2|
+---+---+
| 1| 2|
+---+---+
Python
_ = spark.udtf.register(name="plus_one", f=PlusOne)
spark.sql("SELECT * FROM plus_one(1)").collect()
Output
[Row(c1=1, c2=2)]
Python
spark.sql("SELECT * FROM VALUES (0, 1), (1, 2) t(x, y), LATERAL plus_one(x)").collect()
Output
[Row(x=0, y=1, c1=0, c2=1), Row(x=1, y=2, c1=1, c2=2)]