Почему PySpark выполняет только оператор по умолчанию в моем пользовательском `SQLTransformer` - PullRequest
0 голосов
/ 13 ноября 2018

Я написал кастом SQLTransformer в PySpark.И установка оператора SQL по умолчанию обязательна для выполнения кода.Я могу сохранить преобразователь custum в Python, загрузить его и выполнить с помощью Scala или / и Python, но выполняется только инструкция по умолчанию, несмотря на то, что в методе _transform есть что-то еще.У меня одинаковый результат для обоих языков, тогда проблема не связана с _to_java методом или JavaTransformer классом.

class filter(SQLTransformer): 
    def __init__(self):
        super(filter, self).__init__() 
        self._setDefault(statement = "select text, label from __THIS__") 

    def _transform(self, df): 
        df = df.filter(df.id > 23)
        return df

1 Ответ

0 голосов
/ 14 ноября 2018

Такой поток информации не поддерживается.Чтобы создать Tranformer, который можно использовать как с базой кода Python, так и с Scala, у вас есть:

  • Реализация Java или Scala Transformer, в вашем случае расширение org.apache.spark.ml.feature.SQLTransformer.
  • Добавьте оболочку Python, расширяющую pyspark.sql.ml.wrapper.JavaTransformer, так же, как pyspark.sql.ml.feature.SQLTransformer, и интерфейс JVM, аналогичный ей.
...