Condividi tramite


register (UDTFRegistration)

Registra una Python funzione di tabella definita dall'utente come funzione di tabella SQL.

Sintassi

register(name, f)

Parametri

Parametro Tipo Descrizione
name str Nome della funzione di tabella definita dall'utente nelle istruzioni SQL.
f UserDefinedTableFunction Funzione di tabella definita dall'utente.

Restituzioni

UserDefinedTableFunction

Note

Spark usa il tipo restituito della funzione di tabella definita dall'utente specificata come tipo restituito della funzione registrata.

Per registrare una funzione di tabella non deterministica Python, creare prima una funzione di tabella non deterministica definita dall'utente e quindi registrarla come funzione 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)]