Создайте банку Fat для упаковки нескольких банок - PullRequest
0 голосов
/ 18 марта 2020

Я использую кластер Databricks для запуска приложения spark.
Мое приложение зависело от нескольких библиотек, но теперь эти библиотеки недоступны через опцию установки новой библиотеки Databricks.
Я узнал об этом через Fat jar или Uber jar Я могу добавить несколько библиотек и передать их в кластер.
Я также узнал, что для создания fat jar необходимо предоставить основной класс, поэтому я написал простую программу в своей локальной системе и добавили зависимости в файл build.sbt.
Я использую команду 'sbt assembly' для создания толстого фляги.
Обратите внимание, что я не использую библиотеку в моем примере программы.

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

Я сделал следующие шаги .

'Пример программы'

  def main(args: Array[String]): Unit = {
    print("Hello World")
  }

}

'Build.sbt'

name := "CrealyticsFatJar"

version := "0.1"

scalaVersion := "2.11.12"

// https://mvnrepository.com/artifact/com.crealytics/spark-excel
libraryDependencies += "com.crealytics" %% "spark-excel" % "0.12.0"

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case x => MergeStrategy.first
}

'assembly.sbt'

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")

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

Q1) Возможно, существует вероятность того, что одна библиотека будет зависеть от другой библиотеки, поэтому, если я упомяну имя библиотеки в SBT, загрузит ли она другие зависимые библиотеки?
Q2) Если я не использую библиотеки для существующей программы, она будет доступна для другой программы кластера.
Q3) После установки Fat jar в cluster- как я могу получить доступ к библиотекам ... Я имею в виду, под каким именем я буду обращаться к библиотекам .. команда импорта ...

Извиняюсь, если мои вопросы настолько глупы. Спасибо

...