Нет имени модуля pyspark error
Это точный код из учебника, за которым я следую. Мой одноклассник не получил эту ошибку с тем же кодом:
ImportError Traceback (most recent call last)
<ipython-input-1-c6e1bed850ab> in <module>()
----> 1 from pyspark import SparkContext
2 sc = SparkContext('local', 'Exam_3')
3
4 from pyspark.sql import SQLContext
5 sqlContext = SQLContext(sc)
ImportError: No module named pyspark
Это код:
from pyspark import SparkContext
sc = SparkContext('local', 'Exam_3')
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
data = sc.textFile("exam3")
parsedData = data.map(lambda line: [float(x) for x in line.split(',')])
retail = sqlContext.createDataFrame(parsedData,
['category_name','product_id', 'product_name', 'product_price'])
retail.registerTempTable("exam3")
print parsedData.take(3)
Ответы
Ответ 1
У вас нет pyspark
, установленного в месте, доступном для используемой установки python. Чтобы подтвердить это, на терминале командной строки с активированным virtualenv
введите свой REPL (python
) и введите import pyspark
:
$ python
Python 3.5.0 (default, Dec 3 2015, 09:58:14)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspark
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'pyspark'
Если вы видите No module name 'pyspark'
ImportError, вам необходимо установить эту библиотеку. Выйдите из REPL и введите:
pip install pyspark
Затем заново введите repl для подтверждения:
$ python
Python 3.5.0 (default, Dec 3 2015, 09:58:14)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspark
>>>
В качестве примечания важно, чтобы ваша виртуальная среда была активирована. Когда в каталоге вашей виртуальной среды:
$ source bin/activate
Эти инструкции предназначены для машины на основе unix и будут различаться для Windows.
Ответ 2
Вы можете использовать findspark
, чтобы сделать свечу доступной во время выполнения. Обычно findspark
найдет каталог, в котором вы установили искру, но если он установлен в нестандартном местоположении, вы можете указать его в правильный каталог. Как только вы установили findspark
, если искра установлена на /path/to/spark_home
, просто поставьте
import findspark
findspark.init('/path/to/spark_home')
в самой верхней части вашего script/notebook, и теперь вы должны иметь доступ к модулю pyspark.
Ответ 3
Просто используйте:
import findspark
findspark.init()
import pyspark # only run after findspark.init()
Если у вас нет модуля findspark, установите его с помощью:
python -m pip install findspark