Я довольно новичок в среде Scala. Я получаю ошибку deduplicate
при попытке собрать работу Scala Spark с помощью соединителя DataStax. Я был бы признателен за любые советы относительно того, что может решить эту проблему.Ошибка сборки sbt с разъемом spark-cassandra
Моей система:
- Последнего Scala (2.11.7), установленные с помощью варки
- Последнего Спарк (2.10.5), установленного с помощью варки
- Последней SBT (0.13.9), установленной с помощью варки
- SBT Assembly плагин установлен
Мои build.sbt
:
name := "spark-test"
version := "0.0.1"
scalaVersion := "2.11.7"
// additional libraries
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0" % "provided"
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "1.5.0-M3"
консоли:
$ sbt assembly
...
[error] 353 errors were encountered during merge
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/Users/bob/.ivy2/cache/io.netty/netty-all/jars/netty-all-4.0.29.Final.jar:META-INF/io.netty.versions.properties
...
@jbrown спасибо за указателем, похоже, используя 'assemblyMergeStrategy' из [пример] (https://github.com/databricks/learning-spark/blob/master /build.sbt) исправляет эту проблему, но не разрешает мою общую проблему. – BobBrez
Ну, проблема связана с тем, что 2 баночки в дереве зависимостей содержат один и тот же файл, например возможно, две разные зависимости используют разные версии одной и той же библиотеки, а конфликты означают, что sbt не знает, как автоматически решить проблему. Вот почему вы решаете с помощью стратегий слияния. Таким образом, вы все еще можете увидеть предупреждение (я забыл), но пока ваш проект компилируется и работает, вы должны быть в порядке. Я добавлю свою стратегию слияния в комментарий. – jbrown
К сожалению, это отмечено как повторяющееся слишком нетерпеливо. Основной источник вашей проблемы, скорее всего, вы пытаетесь использовать разъем Cassandra для Spark 1.5.0, когда используете Spark 1.6.0. Пока нет разъема для 1.6.0. Также упоминается «последняя искра (2.10.5)», но такой искры нет. Вероятно, вы имеете в виду Spark для Scala 2.10.5, что также может противоречить вам с помощью Scala 2.11.7. Попробуйте 'scalaVersion: =" 2.10.5 "и' "искровое ядро"% "1.5.0" ', и у вас может не возникнуть проблема слияния. – sgvd