Partager via


UserDefinedTableFunction

Fonction de table définie par l’utilisateur dans Python.

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

Syntaxe

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 Type de retour de la fonction de table définie par l’utilisateur sous la forme d’un StructType, ou Aucun s’il n’est pas spécifié.

Méthodes

Méthode Description
asDeterministic() Met à jour UserDefinedTableFunction de manière déterministe.

Remarques

Cette API évolue.

Exemples

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()
+---+---+
| c1| c2|
+---+---+
|  1|  2|
+---+---+
_ = spark.udtf.register(name="plus_one", f=PlusOne)
spark.sql("SELECT * FROM plus_one(1)").collect()
[Row(c1=1, c2=2)]
spark.sql("SELECT * FROM VALUES (0, 1), (1, 2) t(x, y), LATERAL plus_one(x)").collect()
[Row(x=0, y=1, c1=0, c2=1), Row(x=1, y=2, c1=1, c2=2)]