Partage via


UDTFRegistration

Wrapper pour l’inscription de la fonction table définie par l’utilisateur. Cette instance est accessible par spark.udtf.

Syntaxe

# Access through SparkSession
spark.udtf

Méthodes

Méthode Description
register(name, f) Inscrit une fonction de table définie par l’utilisateur Python en tant que fonction de table SQL.

Remarques

Spark utilise le type de retour de la fonction table définie par l’utilisateur donnée comme type de retour de la fonction inscrite.

Pour inscrire une fonction table Python non déterministe, créez d’abord une fonction table non déterministe définie par l’utilisateur, puis inscrivez-la en tant que fonction SQL.

Exemples

from pyspark.sql.functions import udtf

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

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