Freigeben über


UserDefinedTableFunction

Eine benutzerdefinierte Tabellenfunktion in Python.

Der Konstruktor dieser Klasse sollte nicht direkt aufgerufen werden. Dient pyspark.sql.functions.udtf zum Erstellen einer Instanz.

Syntax

from pyspark.sql.functions import udtf

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

Eigenschaften

Eigentum Beschreibung
returnType Der Rückgabetyp der benutzerdefinierten Tabellenfunktion als StructType oder None, falls nicht angegeben.

Methodik

Methode Beschreibung
asDeterministic() Aktualisiert die UserDefinedTableFunction auf deterministisch.

Hinweise

Diese API entwickelt sich weiter.

Beispiele

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