Pyspark 管道自定义变压器

数据挖掘 pyspark 变压器
2022-02-18 12:57:28

我在理解为 Pyspark 管道创建自定义转换器时遇到了一些麻烦。

我正在编写一个自定义转换器,它将采用数据框列 Company 并删除杂散逗号:

from pyspark.sql.functions import *

class DFCommaDropper(Transformer):

    def__init__(self, *args, **kwargs):
        self.name = CommaDropper

    def transform(self,df):
        df = df.withColumn('Company', regexp_replace('Company',',','')
        return df

上面的代码显然是错误的。我不确定什么/如何初始化它,然后如何在转换函数中使用初始化的类实例。

在此先感谢您的帮助。

1个回答
class StrayCommaRemover(TransformerMixin):
    def __init__(self): //Initialize self by setting some variables here which can be passed as a input to transformer


def fit(self, X, y=None):
    self.columns = X.columns //Setting context based on input Data
    return self

def transform(self, X, y=None): // Actual transformation logic
    X= X.withColumn('Company', regexp_replace('Company',',','')
    return X

您可以将上述转换器添加为管道中的一个步骤,并可以在其上调用init()fit()