Установка пакета graphframes в автономный кластер Spark

У меня есть автономный кластер pyspark (нет доступа в интернет), где мне нужно установить библиотеку graphframes.

Я вручную загрузил jar отсюда, добавленный в $SPARK_HOME/jars/, и затем, когда я пытаюсь использовать его, я получаю следующую ошибку:

error: missing or invalid dependency detected while loading class file 'Logging.class'.
Could not access term typesafe in package com,
because it (or its dependencies) are missing. Check your build definition for
missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
A full rebuild may help if 'Logging.class' was compiled against an incompatible version of com.
error: missing or invalid dependency detected while loading class file 'Logging.class'.
Could not access term scalalogging in value com.typesafe,
because it (or its dependencies) are missing. Check your build definition for
missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
A full rebuild may help if 'Logging.class' was compiled against an incompatible version of com.typesafe.
error: missing or invalid dependency detected while loading class file 'Logging.class'.
Could not access type LazyLogging in value com.slf4j,
because it (or its dependencies) are missing. Check your build definition for
missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.)
A full rebuild may help if 'Logging.class' was compiled against an incompatible version of com.slf4j.

Как правильно установить его в автономном режиме со всеми зависимостями?

1 ответ

Решение

Мне удается установить библиотеку графических фреймов. Прежде всего, я нашел зависимости графических фреймов, где:

scala-logging-api_xx-xx.jar
scala-logging-slf4j_xx-xx.jar

где xx - правильные версии для scala и jar-версии. Затем я установил их на правильный путь. Поскольку я работаю на машине Cloudera, правильный путь:

/ Опт / Cloudera / посылки /SPARK2/ Lib/spark2/ банки /

Если вы не можете поместить их в этот каталог в своем кластере (поскольку у вас нет прав root и ваш администратор супер ленив), вы можете просто добавить его в свой spark-submit/ spark-shell

spark-submit ..... --driver-class-path /path-for-jar/  \
                   --jars /../graphframes-0.5.0-spark2.1-s_2.11.jar,/../scala-logging-slf4j_2.10-2.1.2.jar,/../scala-logging-api_2.10-2.1.2.jar

Это работает для Scala. Чтобы использовать графические рамки для python, вам нужно скачать графические фреймы jar, а затем через оболочку

#Extract JAR content
 jar xf graphframes_graphframes-0.3.0-spark2.0-s_2.11.jar
#Enter the folder
 cd graphframes
#Zip the contents
 zip graphframes.zip -r *

А затем добавьте заархивированный файл в ваш путь к python в spark-env.sh или в ваш bash_profile с помощью

export PYTHONPATH=$PYTHONPATH:/..proper path/graphframes.zip:.

Затем открытие оболочки / отправка (снова с теми же аргументами, что и в scala) импорт графических фреймов работает нормально

Эта ссылка была чрезвычайно полезна для этого решения

Другие вопросы по тегам