簡體   English   中英

如何在 pyspark withcolumn 中使用 udf 和 class

[英]How to use udf and class in pyspark withcolumn

我正在使用 pyspark 但是,我不知道如何使用我的定義 class。

class TEST:
    def __init__(self, content):
        self.content

    def my_function(self):
        return self.content + "text"

df.withColumn("test", TEST(content=col("TEST")))

但是,<class 'pyspark.sql.column.Column'> 列<b'Con'>

我如何能?

您不能使用.withColumn(..)直接調用您的自定義函數,您需要使用 UserDefinedFunctions (UDF)

.withColumn期望第二個參數是一個列表達式。 因此,您可以使用以下方法使用自定義函數,將它們轉換為 UDF 並在.withColumn內部調用:

from pyspark.sql.functions import udf

udf_func = udf(lambda content : content + "text", StringType())

df_result= df.withColumn("test",udf_func(content))
df_result.show()

或者如果你想要一個 class,你可以做類似的事情:

class TEST:
    def __init__(self, content):
        self.content

    def my_function(self):
        return self.content + "text"

udf_func = udf(lambda content: TEST(content).myfunction(), StringType())
df_result= df.withColumn("test",udf_func(content))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM