Можно ли создать приложение Spark с источником данных spark-avro и выполнить его с помощью java -jar? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть Java-приложение, которое использует spark для доступа к данным из различных источников данных (hadoop, локальная файловая система, ..) в различных форматах (json, avro, ...).

   SparkSession spark = SparkSession
        .builder()
        .appName("Spark app")
        .master("local")
        .getOrCreate();
    Dataset<Row> dataset = spark
        .read()
        .format(FORMAT)) // avro, json, ...
        .load(FILEPATH);

IЯ могу создать толстый JAR и запустить его через "Java-JAR".Нет проблем, если я использую JSON как «FORMAT».Но если заменить «JSON» на «AVRO», то будет выдано исключение, что Failed to find data source: AVRO. Avro is built-in but external data source module since Spark 2.4.Если я запускаю его непосредственно в (IDE), то все работает даже с avro, но если он работает в jar, то работает только JSON.

Я знаю, что avro - это внешний источник данных для запуска и что его нужно каким-то образом добавить вСпарк, но не знаю, как и если вообще возможно запустить такое приложение только через java -jar app.jar -param -param1

1 Ответ

0 голосов
/ 07 мая 2019

Проблема была в плагине maven build.Я использовал maven-assembly-plugin, но когда я заменил его на maven-shade-plugin, тогда все работает.

...