UserDefinedTableFunction

Uživatelem definovaná funkce tabulky v Python.

Konstruktor této třídy nemá být volána přímo. Slouží pyspark.sql.functions.udtf k vytvoření instance.

Syntaxe

from pyspark.sql.functions import udtf

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

Vlastnosti

Vlastnictví Description
returnType Návratový typ uživatelem definované funkce tabulky jako StructType nebo None pokud není zadán.

Methods

Metoda Description
asDeterministic() Aktualizuje UserDefinedTableFunction na deterministické.

Příklady

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