Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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)]