register (UDTFRegistration)

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