Как установить версию c sparki, указав c версию scala - PullRequest
0 голосов
/ 25 февраля 2020

у меня в маске спарк 2.4.5 c. Когда я выполняю spark-submit --version

      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.4.5
      /_/

Using Scala version 2.11.12, OpenJDK 64-Bit Server VM, 1.8.0_242
Branch HEAD
Compiled by user centos on 2020-02-02T19:38:06Z
Revision cee4ecbb16917fa85f02c635925e2687400aa56b
Url https://gitbox.apache.org/repos/asf/spark.git
Type --help for more information.

Обратите внимание, что используется scala версия 2.11.12. Тем не менее, мое приложение использует 2.12.8, и это вызывает у меня известную ошибку java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V.

Мой вопрос заключается в том, как заставить мою искру 2.4.5 использовать scala 2.12, как указано в их официальном веб-сайте в разделе Download: Spark 2.4.5 uses Scala 2.12

Я попробовал brew search apache-spark и получил

==> Formulae
apache-spark ✔

и brew info apache-spark вернул мне

apache-spark: stable 2.4.5, HEAD
Engine for large-scale data processing
https://spark.apache.org/
/usr/local/Cellar/apache-spark/2.4.4 (1,188 files, 250.7MB) *
  Built from source on 2020-02-03 at 14:57:17
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/apache-spark.rb
==> Dependencies
Required: openjdk ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 7,150 (30 days), 15,180 (90 days), 64,459 (365 days)
install-on-request: 6,900 (30 days), 14,807 (90 days), 62,407 (365 days)
build-error: 0 (30 days)

Благодарим за любой совет!

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете создать любую пользовательскую версию Spark локально.

  • Клон https://github.com/apache/spark локально
  • Обновить файл pom, сосредоточив внимание на scala.version, hadoop.version, scala.binary.version и artifactId в https://github.com/apache/spark/blob/master/pom.xml
  • mvn -DskipTests clean package (из их README)
  • После успешной сборки найдите все банки в assembly/target/scala-2.11/jars, external/../target и другие внешние банки, которые вы хотите, которые могут находиться в пределах provided отправленных вами файлов.
  • Создайте новый каталог и export SPARK_HOME="/path/to/directory_name", чтобы https://github.com/apache/spark/blob/master/bin/spark-submit обнаружил его (см. Источник, чтобы узнать почему)
  • Скопируйте файлы jar в $ SPARK_HOME / jars и убедитесь, что нет конфликтующих банок
  • Корзина / сценарии должны быть одинаковыми, но при необходимости, конкретно ссылаться на них и, возможно, даже отсоединить варочные сценарии, если они вам больше не нужны
...