register (UDTFRegistration)

Inscrit une Python fonction de table définie par l’utilisateur en tant que fonction de table SQL.

Syntaxe

register(name, f)

Paramètres

Paramètre Type Description
name str Nom de la fonction de table définie par l’utilisateur dans les instructions SQL.
f UserDefinedTableFunction Fonction de table définie par l’utilisateur.

Retours

UserDefinedTableFunction

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 non déterministe Python, commencez par générer une fonction table définie par l’utilisateur non déterministe, 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)]

# Use it with a lateral join.
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)]