Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Registriert eine Python benutzerdefinierte Tabellenfunktion als SQL-Tabellenfunktion.
Syntax
register(name, f)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
name |
str | Der Name der benutzerdefinierten Tabellenfunktion in SQL-Anweisungen. |
f |
UserDefinedTableFunction |
Die benutzerdefinierte Tabellenfunktion. |
Rückkehr
UserDefinedTableFunction
Hinweise
Spark verwendet den Rückgabetyp der angegebenen benutzerdefinierten Tabellenfunktion als Rückgabetyp der registrierten Funktion.
Um eine nicht deterministische Python Tabellenfunktion zu registrieren, erstellen Sie zuerst eine nicht deterministische benutzerdefinierte Tabellenfunktion und registrieren sie dann als SQL-Funktion.
Beispiele
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)]