我的代码中有很多自定义的Dataframe转换。第一组是简单铸造:
dframe = dframe.withColumn("account_number", col("account").cast("decimal(38,0)"));
第二组是udf转换:
(UDF1<Timestamp, Integer>) s -> s.toLocalDateTime().extractMonth()
dframe = dframe.withColumn("month", callUDF(("monthExtractor"), dframe.col("trans_date_t")));
他们都在工作,所以代码正在测试。但我的最终目标是从代码中创建ml管道,以便能够重用。那么有没有办法把上面的代码转换成各种变压器呢?
1条答案
按热度按时间fdbelqdn1#
您可以创建自己的特征转换(使用udf或其他方法),然后重写spark的转换方法,并将其放入自己的操作中。
github上的spark代码为您提供了一些关于扩展transformer功能的可能性的见解,前提是您需要创建 Package 器对象。
其中xmodel和xop是抽象。模型将根据定义的操作相应地转换数据集。