#python #apache-spark #pyspark #jupyter-notebook
#python #apache-spark #pyspark #jupyter-notebook
Вопрос:
Я использовал pip install pyspark
для установки PySpark. Я не задавал никакого пути и т.д.; однако я обнаружил, что все было загружено и скопировано в C:/Users/Admin/anaconda3/scripts
. Я открыл записную книжку jupyter в ядре Python3 и попытался запустить скрипт SystemML, но он выдавал ошибку. Я понял, что мне нужно разместить winutils.exe в C:/Users/Admin/anaconda3/scripts
также, поэтому я сделал это, и скрипт запустился, как ожидалось.
Теперь моя программа включает поиск по сетке, и когда я запускаю ее на своем персональном ноутбуке, она работает заметно медленнее, чем на облачной платформе данных, где я могу запустить ядро с помощью Spark (например, IBM Watson Studio).
Итак, мои вопросы:
(i) Как мне добавить PySpark в ядро Python3? Или она уже работает в фоновом режиме, когда я import pyspark
?
(ii) Когда я запускаю один и тот же код в одном и том же наборе данных с использованием pandas и scikit-learn, разница в производительности невелика. Когда PySpark предпочтительнее / выгоднее pandas и scikit-learn?
Другое дело, что, хотя PySpark, похоже, работает нормально, и я могу импортировать его библиотеки, когда пытаюсь запустить
import findspark
findspark.init()
он выдает ошибку и (в строке 2), сообщая list is out of range
. Я немного погуглил и нашел совет, в котором говорилось, что мне нужно явно установить SPARK_HOME='C:/Users/Admin/anaconda3/Scripts'
; но когда я это делаю, pyspark перестает работать (findspark.init() все еще не работает).
Если кто-нибудь может объяснить, что происходит, я был бы очень благодарен. Спасибо.
Комментарии:
1. Можете ли вы показать полное сообщение об исключении?
Ответ №1:
Как мне добавить PySpark в ядро Python3
pip install
, как вы сказали, вы сделали
разница в производительности невелика
Вы используете только одну машину, поэтому не было бы
Когда PySpark предпочтительнее / выгоднее pandas и scikit-learn?
Когда вы хотите развернуть тот же код на реальном кластере Spark, а ваш набор данных хранится в распределенном хранилище
Вам не обязательно findspark
, если ваши переменные среды уже настроены