Как исправить 'AttributeError: модуль' __main__ 'не имеет атрибута', когда PipelineModel.load () в блоках данных - PullRequest
0 голосов
/ 19 февраля 2019

Я уже сохранил PipelineModel в учебной записной книжке, которую я хочу загрузить в предсказываемую записную книжку.У модели есть свой собственный пользовательский класс поэтапно.

Я пытался преобразовать класс в пакеты и импортировать их, но это все еще не решило мою проблему.

В учебном блокноте у меня есть:

from pyspark.ml import Pipeline

pipeline_index = Pipeline(stages=[
  ArrayStringIndex(inputCol="tokens", outputCol="tokens_idx"),
  ArrayStringIndex(inputCol="sentiment", outputCol="label_idx")
])

transformer_pipeline_index = pipeline_index.fit(df_pre)

# Save Pipeline Model
transformer_pipeline_index.write().overwrite().save("/tmp/pipelinemodel")

df_training = transformer_pipeline_index.transform(df_pre)
df_training = df_training.select(df_training.id, df_training.tokens_idx, df_training.label_idx)
df_training.show()

В записной книжке прогнозирования у меня есть:

from pyspark.ml import Pipeline, PipelineModel
from myclass.pipeline.arraystring import ArrayStringIndex, ArrayStringIndexModel

# Load Pipeline Model
transformer_pipeline_index = PipelineModel.load("/tmp/pipelinemodel")

df_predict = transformer_pipeline_index.transform(df_pre)
df_predict = df_predict.select(df_predict.id, df_predict.tokens_idx, df_predict.label_idx)
df_predict.show()

Я ожидаю, что PipelineModel.load () работает и загружает созданную ранее PipelineModel, но я получил AttributeError: module ' main 'не имеет атрибута ArrayStringIndexModel'

...