我正在使用Spark管道,经常遇到这样的情况:我有一堆SQLTransformer,它们在管道中执行不同的操作,并且在不查看整个语句的情况下无法真正理解它们的作用。
我想为每种变压器类型添加一些简单的文档或标签组件(保存变压器时将保留这些内容),以后可以根据需要进行检索。
基本上就是这样。
s = SQLTransformer()
s.tag = "basic target generation"
s.save("tmp")
s2 = SQLTransformer.load("tmp")
print(s2.tag)
或
s = SQLTransformer()
s.setParam(tag="basic target generation")
s.save("tmp")
s2 = SQLTransformer.load("tmp")
print(s2.getParam("tag"))
我可以看到我现在不能执行任何操作,因为参数对象已被锁定,并且我似乎无法修改除语句以外的现有对象或添加新对象。但是我能做些什么来获得这样的功能吗?
我正在将Spark 2.1.1与python结合使用。
答案 0 :(得分:0)
并非没有实现自己的Scala Transformer
扩展SQLTransformer
然后编写Python接口(或编写独立的Python Transformer
-How to Roll a Custom Estimator in PySpark mllib)。
但是如果你
想添加一些简单的文档
您可以在语句中添加注释:
s = SQLTransformer(statement = """
-- This is a transformer that selects everything
SELECT * FROM __THIS__""")
print(s.getStatement())
## -- This is a transformer that selects everything
## SELECT * FROM __THIS__