Spark с Pureconfig - правильная конфигурация плагина Maven Shade
У меня точно такая же проблема, как описано здесь: Spark не работает с pureconfig. Единственный ответ на вышеупомянутый вопрос кажется разумным, но я работаю с Maven вместо sbt и не могу перевести опубликованное решение с sbt на Maven.
Я пробовал что-то вроде следующего:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>com.chuusai:shapeless_2.11:2.3.2</pattern>
<shadedPattern>com.matek.shaded.com.chuusai:shapeless_2.11:2.3.2</shadedPattern>
</relocation>
<relocation>
<pattern>com.chuusai:shapeless_2.11:2.0.0</pattern>
<shadedPattern>com.matek.shaded.com.chuusai:shapeless_2.11:2.0.0</shadedPattern>
</relocation>
<relocation>
<pattern>com.github.pureconfig</pattern>
<shadedPattern>com.matek.shaded.com.github.pureconfig</shadedPattern>
<excludes>
<exclude>com.chuusai:shapeless_2.11:2.3.2</exclude>
</excludes>
<includes>
<include>com.matek.shaded.com.chuusai:shapeless_2.11:2.3.2</include>
</includes>
</relocation>
</relocations>
</configuration>
Но неудивительно, что это не работает (я даже не уверен, правильно ли это). Как указать конфигурацию плагина maven shade, чтобы он работал с spark submit?
1 ответ
Решение
Мне удалось решить проблему. Это была на самом деле моя ошибка, шаблон просто shapeless
и ничего подобного com.chuusai.shapeless
, Это сработало:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<relocations>
<relocation>
<pattern>shapeless</pattern>
<shadedPattern>com.matek.shaded.shapeless</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>