Apache spark 为什么PySpark只执行自定义`SQLTransformer'中的默认语句`

Apache spark 为什么PySpark只执行自定义`SQLTransformer'中的默认语句`,apache-spark,pyspark,pipeline,apache-spark-ml,Apache Spark,Pyspark,Pipeline,Apache Spark Ml,我用PySpark编写了一个定制的SQLTransformer。设置默认SQL语句是强制执行代码的。我可以在Python中保存custum transformer,加载它并使用Scala或/和Python执行它,但是只执行默认语句,尽管\u transform方法中还有其他内容。我对这两种语言都有相同的结果,那么问题与\u to_java方法或JavaTransformer类无关 类过滤器(SQLTransformer): 定义初始化(自): 超级(过滤器,自我)。\uuuu初始化 self.\

我用PySpark编写了一个定制的
SQLTransformer
。设置默认SQL语句是强制执行代码的。我可以在Python中保存custum transformer,加载它并使用Scala或/和Python执行它,但是只执行默认语句,尽管
\u transform
方法中还有其他内容。我对这两种语言都有相同的结果,那么问题与
\u to_java
方法或
JavaTransformer
类无关

类过滤器(SQLTransformer):
定义初始化(自):
超级(过滤器,自我)。\uuuu初始化
self.\u setDefault(statement=“选择文本,标签自此”)
def_变换(自,df):
df=df.filter(df.id>23)
返回df

不支持此类信息流。要创建可与Python和Scala代码库一起使用的
transformer
,您有:

  • 在扩展
    org.apache.spark.ml.feature.SQLTransformer
    的情况下,实现Java或Scala
    Transformer
  • 添加Python包装扩展
    pyspark.sql.ml.wrapper.JavaTransformer
    ,方法与
    pyspark.sql.ml.feature.SQLTransformer
    相同,并从中接口JVM对应项

我需要在Scala管道中调用
SQLTransformer
。我可以在Python中保存
SQLTransformer
,在Scala端加载并运行它,但是尽管我在类中定义了
\u transform
方法,默认语句在Scala端执行。谢谢,这意味着用Python编写的自定义Transformer不能在Scala管道中使用。因为,如果我需要用Scala和Python编写相同的代码,最好直接在Scala管道中使用已经用Scala编写的代码。