обученная модель sklearn для запуска на фреймворке pyspark - PullRequest
0 голосов
/ 07 мая 2020

Я работаю над проблемой классификации текста и использовал векторизатор подсчета и tfidf и сохранил модель, а также векторизатор в python, который я сохранил вот так

X_train, X_test, y_train, y_test = train_test_split(df_upsampled['conv_cleaned'], df_upsampled['r1'], random_state = 0)
count_vect = CountVectorizer( max_df=.98,min_df=.001,  encoding='latin-1', ngram_range=(1, 3))
X_train_counts = count_vect.fit_transform(X_train)
tfidf_transformer = TfidfTransformer(sublinear_tf=True,norm='l2')
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf = LinearSVC().fit(X_train_tfidf, y_train)
# save the model to disk
import pickle
filename = 'Linearsvctrainedcallreason.pkl'
pickle.dump(clf, open(filename, 'wb'))
pickle.dump(count_vect, open("vectorizer.pickle", "wb"))
* 1003 pyspark dataframe, чтобы использовать его в производственных кодах, которые я пробовал и не работал. Часть 1:
@f.udf(returnType=StringType())
def predict_f1(message):
    return pd.Series(loaded_model.predict(vectorizer.transform(message)))
temp_f1 = temp.withColumn('predicted_reason', predict_f1(temp.conv))

temp_f1.take(5)

Часть 2:

predict_f2 = f.pandas_udf(lambda message: loaded_model.predict(vectorizer.transform(message)), StringType())
temp_f2 = temp.withColumn('predicted_reason', predict_f2(temp.conv))

temp_f2.take(5)

сообщение об ошибке:

Py4JJavaError: ошибка при вызове o946.collectTo Python. : org. apache .spark.SparkException: задание прервано из-за сбоя этапа: задача 0 на этапе 139.0 не удалась 4 раза, последний сбой: потерянная задача 0.3 на этапе 139.0 (TID 18180, bdswr004x12h5.nam.ns root. net, исполнитель 2530): org. apache .spark.api. python .PythonException: Traceback (последний вызов последним): Файл "/opt/cloudera/parcels/SPARK2-2.4.0.cloudera2-1 .cdh5.13.3.p3544.1321029 / lib / spark2 / python / lib / pyspark.zip / pyspark / worker.py ", строка 267, в основном ("% d.% d "% sys.version_info [: 2], версия))

у меня python: 3.6.5 pyspark: 2.3.1 scikit-learn: 0.21.3 pandas: 0.22.0 pyarrow: 0.11.1

...