UserDefinedTableFunction

Python kullanıcı tanımlı tablo işlevi.

Bu sınıfın oluşturucusunun doğrudan çağrılmaması gerekir. Örnek oluşturmak için kullanın pyspark.sql.functions.udtf .

Sözdizimi

from pyspark.sql.functions import udtf

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

Özellikler

Mülkiyet Açıklama
returnType Kullanıcı tanımlı tablonun dönüş türü StructType olarak işlev görür veya belirtilmezse None işlevi görür.

Methods

Yöntem Açıklama
asDeterministic() UserDefinedTableFunction değerini deterministik olarak güncelleştirir.

Örnekler

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