Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Registrerar en Python användardefinierad tabellfunktion som en SQL-tabellfunktion.
Syntax
register(name, f)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
name |
str | Namnet på den användardefinierade tabellfunktionen i SQL-instruktioner. |
f |
UserDefinedTableFunction |
Den användardefinierade tabellfunktionen. |
Retur
UserDefinedTableFunction
Notes
Spark använder returtypen för den angivna användardefinierade tabellfunktionen som returtyp för den registrerade funktionen.
Om du vill registrera en nondeterministisk Python tabellfunktion skapar du först en nondeterministisk användardefinierad tabellfunktion och registrerar den sedan som en SQL-funktion.
Exempel
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)]