Scala IDE: установка версии интерпретатора Scala

Я пытаюсь создать опыт, подобный RStudio, для Scala и spark. Выяснив, как его правильно установить (включая Scala 2.10.5) на Win7x64, я столкнулся с проблемой, что версия интерпретатора

scala> scala.tools.nsc.Properties.versionString
res1: String = version 2.11.8

отличается от версии spark-shell scala

scala> scala.tools.nsc.Properties.versionString
res1: String = version 2.10.5

и из версии scala (cmd.exe)

C:\>scala -version
Scala code runner version 2.10.5 -- Copyright 2002-2013, LAMP,EPFL

Что вызывает мои проблемы в соответствии с этим ответом проблемы при запуске spark из интерпретатора

scala> val sc = new SparkContext(conf)
java.lang.NoSuchMethodError: scala.
collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;

Вопрос: Где установить/настроить версию, которую использует интерпретатор? Поиск в глобальных настройках Scala IDE для «интерпретатора» не дал результатов. Кажется, что-то, что было отправлено вместе со Scala IDE?

(spark 1.6.1, hadoop 2.6, Scala IDE 4.4.1, Scala 2.10.5, по крайней мере, так и должно быть)


person Boern    schedule 15.06.2016    source источник


Ответы (1)


Вместо использования конкретной установки scala REPL вы всегда можете использовать sbt console и файл build.sbt для запуска правильной версии.

Если вы добавите файл build.sbt в свой основной каталог, Scala IDE должна выбрать версию, которую вы хотите использовать.

~/test2$ cat build.sbt
scalaVersion := "2.11.7"
~/test2$ sbt console
[info] Set current project to test2 (in build file:/projects/9ab40ff8-31cd-4860-9cc9-ceb67d1afa39/test2/)
[info] Updating {file:/projects/9ab40ff8-31cd-4860-9cc9-ceb67d1afa39/test2/}test2...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.11.7 (OpenJDK 64-Bit Server VM, Java 1.7.0_101).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :q

[success] Total time: 24 s, completed Jun 16, 2016 9:18:19 PM
~/test2$ echo 'scalaVersion := "2.10.5"' > build.sbt
~/test2$ cat build.sbt
scalaVersion := "2.10.5"
~/test2$ sbt console
[info] Set current project to test2 (in build file:/projects/9ab40ff8-31cd-4860-9cc9-ceb67d1afa39/test2/)
[info] Updating {file:/projects/9ab40ff8-31cd-4860-9cc9-ceb67d1afa39/test2/}test2...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] 'compiler-interface' not yet compiled for Scala 2.10.5. Compiling...
[info]   Compilation completed in 61.292 s
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.10.5 (OpenJDK 64-Bit Server VM, Java 1.7.0_101).
Type in expressions to have them evaluated.
Type :help for more information.

scala> :q

[success] Total time: 77 s, completed Jun 16, 2016 9:20:45 PM

Вы также можете указать зависимости библиотек из таких мест, как mvnrepository, и sbt загрузит их (если они еще не загружены) и добавит их в ваш Путь к классам REPL.

И наконец, посмотрите Jupyter Scala, чтобы узнать о интерфейсе блокнота в стиле Ipython для Scala.

person evan.oman    schedule 16.06.2016