register (UDTFRegistration)

Rejestruje funkcję tabeli zdefiniowanej przez użytkownika Python jako funkcję tabeli SQL.

Składnia

register(name, f)

Parametry

Parameter Typ Opis
name str Nazwa funkcji tabeli zdefiniowanej przez użytkownika w instrukcjach SQL.
f UserDefinedTableFunction Funkcja tabeli zdefiniowana przez użytkownika.

Zwroty

UserDefinedTableFunction

Notatki

Platforma Spark używa zwracanego typu danej funkcji tabeli zdefiniowanej przez użytkownika jako zwracanego typu zarejestrowanej funkcji.

Aby zarejestrować nieokreśloną funkcję tabeli Python, najpierw skompiluj funkcję tabeli zdefiniowanej przez użytkownika, a następnie zarejestruj ją jako funkcję SQL.

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