PySpark: невозможно импортировать имя 'OneHotEncoderEstimator' - PullRequest
0 голосов
/ 27 января 2020

Я только начал изучать Spark. В настоящее время я пытаюсь выполнить горячее кодирование для одного столбца из моего кадра данных. Однако я не могу импортировать OneHotEncoderEstimator из pyspark. Я попытался импортировать OneHotEncoder (отменен в 3.0.0), спарк может импортировать его, но в нем отсутствует функция преобразования. Вот вывод из моего кода ниже. Если кто-то сталкивался с подобной проблемой, пожалуйста, помогите. Большое вам спасибо за ваше время!!

enter image description here

1 Ответ

2 голосов
/ 27 января 2020

Ваша первая проблема заключается в том, что объект кодировщика не имеет ошибки 'transform'. Это индексатор категорий. Прежде чем вы сможете преобразовать столбцы объекта, вы должны обучить OneHotEncoderEstimator с помощью функции fit (). Таким образом, ваш объект кодера будет учиться на основе данных и сможет передавать данные в закодированные векторы категорий. Большинству моделей индексаторов категорий требуется функция fit () для изучения самих данных.

Итак, что вы должны сделать, это:

encoder = OneHotEncoderEstimator(dropLast=False, inputCol:"AgeIndex", outputCol="AgeVec"
model = encoder.fit(df)
encoded = model.transform(df)
encoded.show()

Также я рекомендую вам прочитать документацию перед началом проекта, если вы новичок в чем-то, документация очень помогает. Раздел spark, который включает в себя операции трансформации, размещен здесь в виде ссылки.

Операции преобразования Spark

Ваша вторая проблема - ошибка импорта, так как вы используете ноутбук, я советую вам проверить среду своего ноутбука. Но ваша версия - это предварительная версия, которая в основном учитывает разработчиков и тестеров. Для начала всегда нужно go для последней протестированной версии. Попробуйте вернуться к spark-2.4.4 и проверить среду ноутбука.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...