ImportError: невозможно импортировать имя «Pregel» из «graphframes.lib» - PullRequest
1 голос
/ 29 мая 2019

Я использую pyspark и графические фреймы от jupyter. Я могу успешно импортировать pyspark и graphframes, но когда я пытаюсь:

from graphframes.lib import Pregel 

Я получаю следующую ошибку:

ImportError: cannot import name 'Pregel' from 'graphframes.lib'

В этом посте я смог заставить работать графические фреймы, но без graphframes.lib:

https://github.com/graphframes/graphframes/issues/104

wget https://github.com/graphframes/graphframes/archive/release-0.2.0.zip
unzip release-0.2.0.zip
cd graphframes-release-0.2.0
build/sbt assembly
cd ..

# Copy necessary files to root level so we can start pyspark. 
cp graphframes-release-0.2.0/target/scala-2.11/graphframes-release-0-2-0-assembly-0.2.0-spark2.0.jar .
cp -r graphframes-release-0.2.0/python/graphframes .

# Set environment to use Jupyter
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=notebook

# Launch the jupyter server.
pyspark --jars graphframes-release-0-2-0-assembly-0.2.0-spark2.0.jar

Я попытался повторить вышеупомянутые команды без строк окружения, так как pyspark прекрасно работает для меня в jupyter, используя другую версию и смог получить graphframes.lib, но без Pregel:

wget https://github.com/graphframes/graphframes/archive/release-0.6.0.zip
unzip release-0.6.0.zip
cd graphframes-release-0.6.0
build/sbt assembly
cd ..

# Copy necessary files to root level so we can start pyspark. 
cp graphframes-release-0.6.0/target/scala-2.11/graphframes-assembly-0.6.0-spark2.3.jar .
cp -r graphframes-release-0.6.0/python/graphframes .

# Set environment to use Jupyter
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=notebook

# Launch the jupyter server.
pyspark --jars graphframes-assembly-0.6.0-spark2.3.jar

Теперь я могу видеть каталог graphrames.lib, но все, что там есть, - aggregate_messages.py.

Наконец, я попробовал следующее, но получил ошибку 404:

wget https://github.com/graphframes/graphframes/archive/release-0.7.0.zip

Я ожидал, что, поскольку я смог импортировать графические фреймы, я смог бы импортировать Pregel из graphframes.lib. Казалось бы, в моей версии, 0.6.0, теперь есть graphrames.lib, но нет Pregel, и что пока нет версии 0.7.0 для графических фреймов.

1 Ответ

1 голос
/ 29 мая 2019

Мне удалось устранить эту ошибку, используя следующий метод:

wget https://github.com/graphframes/graphframes/archive/f9e13ab4ac1a7113f8439744a1ab45710eb50a72.zip
unzip graphframes-f9e13ab4ac1a7113f8439744a1ab45710eb50a72.zip
cd graphframes-f9e13ab4ac1a7113f8439744a1ab45710eb50a72
build/sbt assembly
cd ..

# Copy necessary files to root level so we can start pyspark. 
cp graphframes-f9e13ab4ac1a7113f8439744a1ab45710eb50a72/target/scala-2.11/graphframes-assembly-0.7.0-spark2.4.jar .
cp -r graphframes-f9e13ab4ac1a7113f8439744a1ab45710eb50a72/python/graphframes .

# Set environment to use Jupyter (if jupyter working with pyspark, skip)
# export PYSPARK_DRIVER_PYTHON=jupyter
# export PYSPARK_DRIVER_PYTHON_OPTS=notebook

# launch pyspark
pyspark --jars graphframes-assembly-0.7.0-spark2.4.jar
...