Где я могу найти папку jars в Spark 1.6?

На странице загрузок Spark, если я загружаю tar-файл для версии 2.0.1, я вижу, что он содержит некоторые файлы jar, которые я считаю полезным включить в моем приложении.

Если я загружу tar-файл для версии 1.6.2 вместо этого я не нахожу там папку jars. Есть ли альтернативный тип пакета, который я должен использовать с этого сайта? В настоящее время я выбираю значение по умолчанию (предварительно созданное для Hadoop 2.6). В качестве альтернативы, где я могу найти эти банки Spark - должен ли я получать каждую из них по отдельности с http://spark-packages.org< /а>?

Вот примерный набор баночек, которые я хочу использовать:

  • Hadoop-общий
  • искровой сердечник
  • искра-csv
  • искра-sql
  • однозначность-парсеры
  • искровой катализатор
  • json4s-ядро

person sudheeshix    schedule 07.03.2017    source источник
comment
До Spark 2 по умолчанию был только один монстр spark-assembly*.jar под $SPARK_HOME/lib, содержащий все зависимости. Если вам нужны отдельные JAR-файлы, вы должны перекомпилировать Spark. Веселиться!   -  person Samson Scharfrichter    schedule 07.03.2017
comment
Кроме того, spark-csv загружается отдельно (не был встроен в кодовую базу Spark до V2) и требует Apache commons-csv.   -  person Samson Scharfrichter    schedule 07.03.2017
comment
Спасибо! Хотите добавить это как ответ, чтобы я мог закрыть это?   -  person sudheeshix    schedule 07.03.2017


Ответы (1)


То, как Sparks поставляет свою среду выполнения, изменилось с V1 на V2.

  • В версии 2 по умолчанию у вас есть несколько JAR-файлов под $SPARK_HOME/jars.
  • В V1 по умолчанию был только один массивный spark-assembly*.jar под $SPARK_HOME/lib, содержащий все зависимости.

Я считаю, что вы можете изменить поведение по умолчанию, но для этого потребуется перекомпилировать Spark самостоятельно...

И еще, о spark-csv конкретно:

  • В версии 2 формат файла CSV изначально поддерживается SparkSQL.
  • В версии 1 вам необходимо скачать spark-csv (для Scala 2.10) с Spark-Packages.org плюс commons-csv из Commons.Apache.org и добавьте оба файла JAR в свой CLASSPATH
    --jars в командной строке или с помощью prop spark.driver.extraClassPath + инструкция sc.addJar() если командная строка по какой-то причине не работает)
    ...да и синтаксис более громоздкий


Выдержка из ванильной версии $SPARK_HOME/bin/spark-class для Spark 2.1.x (значительно упрощенная)

# Найти банки Spark

  SPARK_JARS_DIR="${SPARK_HOME}/jars"
  LAUNCH_CLASSPATH="$SPARK_JARS_DIR/*"

И начиная со Spark 1.6.x

# Найти банку сборки

  ASSEMBLY_DIR="${SPARK_HOME}/lib"
  ASSEMBLY_JARS="$(ls -1 "$ASSEMBLY_DIR" | grep "^spark-assembly.*hadoop.*\.jar$" || true)"
  SPARK_ASSEMBLY_JAR="${ASSEMBLY_DIR}/${ASSEMBLY_JARS}"
  LAUNCH_CLASSPATH="$SPARK_ASSEMBLY_JAR"
person Samson Scharfrichter    schedule 07.03.2017
comment
в spark 2.2.0 удаление банок в $SPARK_HOME/jars, кажется, делает банки доступными для spark-shell и pyspark через терминал, однако, когда я отправляю приложение spark, эти банки не подбираются, я получаю ClassNotFound кроме, нужно ли мне указывать что-либо еще, когда создание моего искрового контекста? - person perrohunter; 09.01.2018
comment
Что именно вы имеете в виду под отправить приложение spark ›› подразумевает ли это spark-submit оболочку, которая вызывает spark-class среди многих других вещей? В противном случае вам придется перепроектировать весь этот беспорядок — удачи в этом. - person Samson Scharfrichter; 10.01.2018
comment
На случай, если кто-то попадет сюда из Google, ища папку jars в AWS EMR, в spark 2.x она находится в /usr/lib/spark/jars/. Чтобы узнать больше информации. - person Daniel Lavedonio de Lima; 15.05.2021