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 |
|---|---|---|
| str | Le nom de la fonction de table définie par l'utilisateur dans les instructions SQL. |
|
| 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)]