бесформенное затенение в искре не работает - метод до сих пор не найден

В настоящее время я сталкиваюсь с некоторыми проблемами с shapeless в spark 2.1, где все еще используется устаревшая версия shapeless. Одна из моих зависимостей (текущая версия PureConfig 0.8.0) использует более новую версию shapeless.

Следует уметь использовать:

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("shapeless.**" -> "new_shapeless.@1").inAll
)

решить проблему method not found - но это не помогает.

Также

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("shapeless.**" -> "shadeshapless.@1")
    .inLibrary("com.chuusai" % "shapeless_2.11" % "2.3.2")
    .inLibrary("com.github.pureconfig" %% "pureconfig" % "0.8.0")
    .inProject
)

из Spark не работает с pureconfig (и, на мой взгляд, не должен быть лучше, чем вариант inAll), но также и не работает (с другой ошибкой, поскольку теперь это нарушает работу библиотеки (pureconfig).

Любые предложения по устранению бесформенной проблемы?

редактировать

в настоящее время конфигурация затенения выглядит так:

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("shapeless.**" -> "shadeshapless.@1")
    .inLibrary("com.chuusai" % "shapeless_2.11" % "2.3.2")
    .inLibrary("com.github.pureconfig" % "pureconfig_2.11" % pureconfigVersion)
    .inLibrary("com.github.pureconfig" % "pureconfig-macros_2.11" % pureconfigVersion)
    .inProject
)

person Georg Heiler    schedule 09.12.2017    source источник
comment
«InAll» означает, что вы будете сканировать весь граф зависимостей, что может занять много времени, поскольку граф становится большим. Скорее всего, вы этого не хотите.   -  person Yuval Itzchakov    schedule 09.12.2017
comment
Что происходит, когда вы пытаетесь указать версию Scala. то есть .inLibrary(com.github.pureconfig % pureconfig_2.11 % 0.8.0)   -  person Yuval Itzchakov    schedule 09.12.2017
comment
Это действительно имеет некоторый эффект, но на данный момент приводит только к большому количеству ошибок слияния: [error] /Users/geoheil/.ivy2/cache/com.github.pureconfig/pureconfig_2.11/bundles/pureconfig_2.11-0.8.0.jar:pureconfig/Derivation$.class [error] /Users/geoheil/.ivy2/cache/com.github.pureconfig/pureconfig-macros_2.11/jars/pureconfig-macros_2.11-0.8.0.jar:pureconfig/Derivation$.class [error] deduplicate: different file contents found in the following: но это не должно иметь никакого другого эффекта, чем inAll   -  person Georg Heiler    schedule 09.12.2017
comment
Добавление ` .inLibrary(com.github.pureconfig % pureconfig-macros_2.11 % pureconfigVersion) ` исправит это локально. Только в понедельник я смогу подтвердить, работает ли он в режиме кластера пряжи - при условии, что текущие настройки оттенка дают тот же результат, что и inAll, он, вероятно, не будет работать. Я тоже попробую поэкспериментировать с userclasspathFirst=true.   -  person Georg Heiler    schedule 09.12.2017
comment
Не используйте userClassPathFirst, это приведет только к проблемам.   -  person Yuval Itzchakov    schedule 09.12.2017
comment
То есть вы имели в виду, что сейчас лучше всего переключиться на не бесформенную библиотеку?   -  person Georg Heiler    schedule 09.12.2017
comment
Нет, нам просто нужно это выяснить :)   -  person Yuval Itzchakov    schedule 09.12.2017
comment
А что еще заштриховать ;) если у вас под рукой есть кластер YARN - возможно, вы можете попробовать: github.com/ geoHeil/sparkMiniKickstart   -  person Georg Heiler    schedule 09.12.2017
comment
Проблема в том, что я сейчас не рядом с компьютером. Обновление в понедельник, если это работает. Если нет, постараюсь погрузиться в нее глубже.   -  person Yuval Itzchakov    schedule 09.12.2017
comment
Спасибо. Тем временем я создал небольшой проект, чтобы воспроизвести мою проблему: git clone [email protected]:geoHeil/sparkMiniKickstart.git cd sparkMiniKickstart sbt compile   -  person Georg Heiler    schedule 09.12.2017


Ответы (1)


На самом деле это не ответ, но, начиная с версии spark 2.2, он отлично работает, поскольку зависимость от sparks была обновлена.

person Georg Heiler    schedule 18.03.2019