Исключение PySpark в облаке - PullRequest
0 голосов
/ 05 февраля 2019

Я использую spark 2.4.0 в Google Cloud Compute Engine с CentOS 6 и 3,75 ГМ памяти.Когда я пытался перейти в режим pyspark, он выдает следующую ошибку:

[user@pb-instance bin]$ pyspark
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/shell.py", line 31, in <module>
    from pyspark import SparkConf
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/__init__.py", line 51, in <module>
    from pyspark.context import SparkContext
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/context.py", line 31, in <module>
    from pyspark import accumulators
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/accumulators.py", line 97, in <module>
    from pyspark.serializers import read_int, PickleSerializer
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/serializers.py", line 71, in <module>
    from pyspark import cloudpickle
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/cloudpickle.py", line 246, in <module>
    class CloudPickler(Pickler):
  File "/home/user/spark/spark-2.4.0-bin-hadoop2.7/python/pyspark/cloudpickle.py", line 270, in CloudPickler
    dispatch[memoryview] = save_memoryview
NameError: name 'memoryview' is not defined
>>> 

Ответы [ 2 ]

0 голосов
/ 11 мая 2019

Cent-OS использует python 2.6 по умолчанию, поэтому установите отдельный python2.7 в любом месте системы, а затем просто установите переменную среды:

export PYSPARK_PYTHON=/usr/local/bin/python2.7

добавьте команду в ~ / .bash_profile, чтобы сделатьоно постоянное.

0 голосов
/ 05 февраля 2019

Тип памяти является новым в Python 2.7, так как вы используете Python 2.6.6, этот тип не определен.

Я настроил экземпляр Google Cloud Compute Engine с той же конфигурацией и получил ту же ошибку.

В файле ./bash_profile была следующая строка:

export PYSPARK_PYTHON=python

Поэтому, если я запускаю python из командной строки, он использует версию 2.6.6.

Выполнение этой команды scl enable python27 bash изменяет версию по умолчанию на 2.7 и решает проблему:

РЕДАКТИРОВАТЬ:

Я собираюсь опубликовать шаги для установки pyspark с нуля в экземпляре CentOS 6 Google Compute.Выполните следующие действия из каталога $HOME.

  1. Загрузите spark curl -O http://apache.rediris.es/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz

  2. Распакуйте его tar -xvzf spark-2.4.0-bin-hadoop2.7.tgz

  3. Установите Java 8 JDK sudo yum install java-1.8.0-openjdk
  4. Добавьте это в конец .bash_profile:

    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64/
    export SPARK_HOME=$HOME/spark-2.4.0-bin-hadoop2.7
    export PATH=$SPARK_HOME/bin:$PATH
    export PYSPARK_PYTHON=python

    Примечание. Вы можете проверить JAVA_HOME путь с помощью alternatives --config java

  5. Выполнить scl enable python27 bash

С этой командой python27 будет версией по умолчанию, пока вы не выйдете из системы.Если вы хотите, чтобы оно сохранялось, добавьте команду также в .bash_profile.

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