在Pyspark中构建定制的变压器和管道

Pyspark食谱第1部分

对量身定制模型的需求是数据科学行业仍在蓬勃发展的唯一原因!否则,到目前为止,我们已经被汽车工具所取代。因此,在这篇文章中,我们将对Pyspark Transformers进行深入研究。

什么是火花中的变压器?

变压器是一种抽象算法(即类),可以将一个数据框转换为另一个数据框

以下是Pyspark中的一个示例: -

一个人可以从第6行多变的Scaleer是类MinMaxScaler的一个实例& 拥有实例变量:outputcol&inputcol以及关注类方法:fit()&transform()((https://spark.apache.org/docs/latest/api/python/reference/pai/pyspark.ml.feature.minmaxscaler.html

从这里我们可以得出结论要构建自定义变压器,我们需要自己的自定义类

在旁注: -fit()/transform()常见设计模式跨多个ML框架,例如Scikit-Learn,Pyspark,TensorFlow等

自定义Pyspark变压器

客观的:构建一个自定义变压器列列表和阈值作为输入。然后删除给定的列列表和任何null_%>给定阈值的列并返回新的数据框

这就是解决方案就是荣耀!

让我们剖析此解决方案: -

  • 要创建自定义变压器,我们需要继承抽象Pyspark变形金刚类(第3行和第8行)
  • 我们将要删除的列的输入列表和阈值作为实例变量。极好的( )第8行上的方法告诉Python解释器允许儿童课Mycolumndropper访问所有方法和属性基类变压器
  • 现在自定义变形金刚暗示自定义“逻辑”,因此我们覆盖从基类变压器继承的_transform方法
  • 第13行删除指定的列列表和第14-19行删除所有具有null_%>输入阈值的列并返回dataframe

如何使用自定义变压器?嵌入火花管道?链变压器?

您可以通过两种方法使用上述变压器(请参见下面的完整示例): -

  • 作为独立转换(第27-28行): - 在这里,我们只是实例化我们的自定义变压器类并调用转换。变压器将列“ Y”,“ A”和“ Z”放下:’y’和“ a”根据drop_list被删除,“ z”的null_%= 1/4 = 25> 20
  • 作为火花管道中的舞台(第31-32行): - 在这里,我们首先实例化变量data_pipeline是一个默认火花类管道的实例→然后将我们的自定义变压器添加为阶段→在完整的管道
  • 使用火花管道约定更有用,因为它使我们能够链多变压器(第35-37行)并允许序列化/腌制

在随后的帖子中,我将覆盖序列化的自定义火花变压器和处理嵌套柱字段

- -

- -

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
Baidu