Как импортировать библиотеки в Spark Notebook
У меня проблемы с импортом magellan-1.0.4-s_2.11
в искровой тетради. Я скачал банку с https://spark-packages.org/package/harsha2010/magellan и попытался разместить SPARK_HOME/bin/spark-shell --packages harsha2010:magellan:1.0.4-s_2.11
в Start of Customized Settings
раздел файла spark-notebook папки bin.
Вот мой импорт
import magellan.{Point, Polygon, PolyLine}
import magellan.coord.NAD83
import org.apache.spark.sql.magellan.MagellanContext
import org.apache.spark.sql.magellan.dsl.expressions._
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
И мои ошибки...
<console>:71: error: object Point is not a member of package org.apache.spark.sql.magellan
import magellan.{Point, Polygon, PolyLine}
^
<console>:72: error: object coord is not a member of package org.apache.spark.sql.magellan
import magellan.coord.NAD83
^
<console>:73: error: object MagellanContext is not a member of package org.apache.spark.sql.magellan
import org.apache.spark.sql.magellan.MagellanContext
Затем я попытался импортировать новую библиотеку, как любую другую библиотеку, поместив ее в main script
вот так:
$lib_dir/magellan-1.0.4-s_2.11.jar"
Это не сработало, и я почесал голову, размышляя, что я сделал не так. Как импортировать библиотеки, такие как magellan, в блокнот spark?
3 ответа
Попробуйте оценить что-то вроде
:dp "harsha2010" % "magellan" % "1.0.4-s_2.11"
Он загрузит библиотеку в Spark, что позволит ей import
ed - при условии, что это может быть получено через репозиторий Maven. В моем случае это не удалось с сообщением:
failed to load 'harsha2010:magellan:jar:1.0.4-s_2.11 (runtime)' from ["Maven2 local (file:/home/dev/.m2/repository/, releases+snapshots) without authentication", "maven-central (http://repo1.maven.org/maven2/, releases+snapshots) without authentication", "spark-packages (http://dl.bintray.com/spark-packages/maven/, releases+snapshots) without authentication", "oss-sonatype (https://oss.sonatype.org/content/repositories/releases/, releases+snapshots) without authentication"] into /tmp/spark-notebook/aether/b2c7d8c5-1f56-4460-ad39-24c4e93a9786
Я думаю, что файл был слишком большим, и соединение было прервано, прежде чем весь файл мог быть загружен.
Временное решение
Поэтому я скачал JAR вручную из:
http://dl.bintray.com/spark-packages/maven/harsha2010/magellan/1.0.4-s_2.11/
и скопировал его в:
/tmp/spark-notebook/aether/b2c7d8c5-1f56-4460-ad39-24c4e93a9786/harsha2010/magellan/1.0.4-s_2.11
А потом :dp
Команда сработала. Попробуйте сначала вызвать его, и, если это не удастся, скопируйте JAR в правильный путь, чтобы все заработало.
Лучшее решение
Я должен выяснить, почему загрузка не смогла исправить это... или поместить эту библиотеку в мое локальное хранилище M2. Но это должно помочь вам.
Я бы предложил проверить это:
а также
https://github.com/spark-notebook/spark-notebook/blob/master/docs/metadata.md#add-spark-packages
я думаю :dp
Волшебная команда устарела, вместо этого вы должны добавить свои собственные зависимости в метаданные ноутбука. Вы можете зайти в меню "Правка"> "Редактировать метаданные блокнота", там добавить что-то вроде:
"customDeps": [
"harsha2010 % magellan % 1.0.4-s_2.11"
]
После этого вам нужно будет перезапустить ядро, вы можете проверить в консоли браузера, правильно ли загружается пакет.
Самый простой способ - установить или добавить EXTRA_CLASSPATH
переменная окружения, чтобы указать на ваш .jar
загруженный файл: export EXTRA_CLASSPATH = </link/to/your.jar>
или же set EXTRA_CLASSPATH= </link/to/your.jar>
в вдовах ОС. Здесь найдете подробное решение.