Aller au contenu principal

enregistrer (UDTFRegistration)

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

Syntaxe

register(name, f)

parameter

parameter

Type

Description

name

str

Le nom de la fonction de table définie par l'utilisateur dans les instructions SQL.

f

UserDefinedTableFunction

La fonction de table définie par l'utilisateur.

parameter

Type

Description

name

str

Le nom de la fonction de table définie par l'utilisateur dans les instructions SQL.

f

UserDefinedTableFunction

La fonction de table définie par l'utilisateur.

Renvoie

UserDefinedTableFunction

Notes

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

Pour enregistrer une fonction de table Python non déterministe, créez d'abord une fonction de table définie par l'utilisateur non déterministe, puis enregistrez-la en tant que fonction SQL.

Exemples

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