Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Registreert een Python door de gebruiker gedefinieerde tabelfunctie als een SQL-tabelfunctie.
Syntaxis
register(name, f)
Parameterwaarden
| Kenmerk | Typ | Beschrijving |
|---|---|---|
name |
str | De naam van de door de gebruiker gedefinieerde tabelfunctie in SQL-instructies. |
f |
UserDefinedTableFunction |
De door de gebruiker gedefinieerde tabelfunctie. |
Retouren
UserDefinedTableFunction
Aantekeningen
Spark gebruikt het retourtype van de opgegeven door de gebruiker gedefinieerde tabelfunctie als het retourtype van de geregistreerde functie.
Als u een niet-deterministische Python tabelfunctie wilt registreren, maakt u eerst een niet-deterministische door de gebruiker gedefinieerde tabelfunctie en registreert u deze als een SQL-functie.
Examples
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)]