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)]