UserDefinedTableFunction

En användardefinierad tabellfunktion i Python.

Konstruktorn för den här klassen ska inte anropas direkt. Använd pyspark.sql.functions.udtf för att skapa en instans.

Syntax

from pyspark.sql.functions import udtf

@udtf(returnType="c1: int, c2: int")
class MyUDTF:
    def eval(self, x: int):
        yield x, x + 1

Egenskaper

Fastighet Beskrivning
returnType Returtypen för den användardefinierade tabellfunktionen som en StructType eller Ingen om den inte anges.

Methods

Metod Beskrivning
asDeterministic() Uppdaterar UserDefinedTableFunction till deterministisk.

Exempel

from pyspark.sql.functions import lit, udtf

@udtf(returnType="c1: int, c2: int")
class PlusOne:
    def eval(self, x: int):
        yield x, x + 1

PlusOne(lit(1)).show()
+---+---+
| c1| c2|
+---+---+
|  1|  2|
+---+---+
_ = spark.udtf.register(name="plus_one", f=PlusOne)
spark.sql("SELECT * FROM plus_one(1)").collect()
[Row(c1=1, c2=2)]
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)]