Ошибка при создании графического фрейма в pyspark
Я пытаюсь запустить приведенный ниже код для создания graphframe в pyspark, который настроен на моем локальном компьютере. Но я получаю ошибку. И я использую версию spark-2.4.0-bin-hadoop2.7.
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
#spark = SparkSession.builder.appName('fun').getOrCreate()
vertices = spark.createDataFrame([('1', 'Carter', 'Derrick', 50),
('2', 'May', 'Derrick', 26),
('3', 'Mills', 'Jeff', 80),
('4', 'Hood', 'Robert', 65),
('5', 'Banks', 'Mike', 93),
('98', 'Berg', 'Tim', 28),
('99', 'Page', 'Allan', 16)],
['id', 'name', 'firstname', 'age'])
edges = spark.createDataFrame([('1', '2', 'friend'),
('2', '1', 'friend'),
('3', '1', 'friend'),
('1', '3', 'friend'),
('2', '3', 'follows'),
('3', '4', 'friend'),
('4', '3', 'friend'),
('5', '3', 'friend'),
('3', '5', 'friend'),
('4', '5', 'follows'),
('98', '99', 'friend'),
('99', '98', 'friend')],
['src', 'dst', 'type'])
g = GraphFrame(vertices, edges)
Я получаю ошибку ниже.
1 ответ
Мне кажется, что следующее работает.
- Загрузите
.jar
файл с https://spark-packages.org/package/graphframes/graphframes - Поскольку у меня было
pyspark
работает на Anaconda, я добавил.jar
файл по этому пути,/anaconda3/lib/python3.7/site-packages/pyspark/jars/
вместе с другими.jar
файлы. - Тогда, похоже, работает следующий сценарий.
# Ref: https://stackru.com/a/50404308/9331359
from pyspark import SparkContext
context = SparkContext()
context.addPyFile('/anaconda3/lib/python3.7/site-packages/pyspark/jars/graphframes-0.7.0-spark2.4-s_2.11.jar')
context
# Ref: https://stackru.com/a/55430066/9331359
from pyspark.sql.session import SparkSession
spark = SparkSession(context)
from pyspark.sql.types import *
from graphframes import *
Вы можете устранить ошибку, выполнив следующие шаги:
1) загрузите jar графических фреймов снизу в зависимости от используемой вами версии spark (например, 0.7.0-spark2.4-s_2.11, поскольку вы используете версию spark 2.4)
https://spark-packages.org/package/graphframes/graphframes
2) добавьте скачанный фрейм графических фреймов в банку спрэка, например, $ SPARK_HOME / jars
3) запустить pyspark с аргументами в первый раз, чтобы он загрузил все зависимости jar графического фрейма:
например, на машине Windows, вы можете запустить с помощью командной строки
$SPARK_HOME/bin/pyspark - пакеты графических фреймов: графические фреймы: 0.7.0-spark2.4-s_2.11
4) перед запуском графических команд из импорта графических фреймов введите команду ниже *
Вышеуказанные шаги решат вашу проблему