Freigeben über


register (UDTFRegistration)

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)]