2014-10-31 2 views
0

У меня есть Eclipse Kepler, я установил плагины Maven и Scala. Я создаю новый проект Maven и добавить зависимостьПроект Eclipse с плагином Scala, Maven и Spark

GroupID: org.apache.spark артефакта: искровой core_2.10 версия: 1.1.0

согласно текущему документу на http://spark.apache.org/downloads.html, все в порядке, в проект добавляются банки для Scala 2.10. Затем я добавляю «Scala Nature» в проект, это добавляет Scala 2.11, и я получаю следующую ошибку:

В библиотеке больше, чем одна библиотека scala (C:/Eclipse/eclipse-jee-kepler- SR2-win32-x86_64/plugins/org.scala-lang.scala-library_2.11.2.v20140721-095018-73fb460c1c.jar, C: /Users/fff/.m2/repository/org/scala-lang/scala-library/ 2.10.4/Scala-библиотека-2.10.4.jar). По крайней мере один имеет несовместимую версию. Пожалуйста, обновите путь сборки проекта, чтобы он содержал только совместимые библиотеки scala.

Возможно ли использовать Spark (от Maven) и Scala IDE Plugin? Любые идеи по устранению этой проблемы?

Благодарим за помощь. С уважением

ответ

2

Короче говоря, да, это возможно.

В настоящее время Spark использует Scala 2.10, а последняя версия Scala IDE «перекрестная публикация» для 2.10 и 2.11. Вам нужно выбрать версию на основе 2.10, которая составляет 3.0.3.

Однако следующая основная версия 4.0, которая находится в режиме выбора кандидата, имеет поддержку нескольких версий. Вы можете создать проект Scala и выбрать версию Scala, которую вы хотите использовать (2.10 или 2.11). Вы можете попробовать попробовать, если вам это нравится.

+0

Спасибо, что сделал это. Я выбрал Scala 2.10 для проекта, и все работает нормально. С уважением – Francesco

1

Если кто-то спотыкается здесь, ища то же самое:

Я недавно создал Maven архетип для развернув новый Спарк 1.3.0 с Scala 2.10.4 проекта. Следуйте инструкциям здесь: https://github.com/spark-in-action/scala-archetype-sparkinaction

Для IntelliJ IDEA, сначала создать проект из командной строки, а затем импортировать в IDE.

0

Вы установили плагин Scala Ide, но природа проекта Scala используется только в том случае, если вы включили в проект проекты scala. Spark и Scala, однако, предназначены для совместной работы. Убедитесь, что вы используете совместимые версии. Вы можете использовать install scala на вашем компьютере, а затем использовать совместимую зависимость от искры.

0

да вы можете .. использовать POM я обеспечиваю ниже

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.spark-scala</groupId> 
    <artifactId>spark-scala</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>${project.artifactId}</name> 
    <description>Spark in Scala</description> 
    <inceptionYear>2010</inceptionYear> 

    <properties> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <encoding>UTF-8</encoding> 
     <scala.tools.version>2.10</scala.tools.version> 
     <!-- Put the Scala version of the cluster --> 
     <scala.version>2.10.4</scala.version> 
    </properties> 

    <!-- repository to add org.apache.spark --> 
    <repositories> 
     <repository> 
      <id>cloudera-repo-releases</id> 
      <url>https://repository.cloudera.com/artifactory/repo/</url> 
     </repository> 
    </repositories> 

    <build> 
     <sourceDirectory>src/main/scala</sourceDirectory> 
     <testSourceDirectory>src/test/scala</testSourceDirectory> 
     <plugins> 
      <plugin> 
       <!-- see http://davidb.github.com/scala-maven-plugin --> 
       <groupId>net.alchim31.maven</groupId> 
       <artifactId>scala-maven-plugin</artifactId> 
       <version>3.2.1</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.13</version> 
       <configuration> 
        <useFile>false</useFile> 
        <disableXmlReport>true</disableXmlReport> 
        <includes> 
         <include>**/*Test.*</include> 
         <include>**/*Suite.*</include> 
        </includes> 
       </configuration> 
      </plugin> 

      <!-- "package" command plugin --> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.4.1</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.scala-tools</groupId> 
       <artifactId>maven-scala-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>org.apache.spark</groupId> 
      <artifactId>spark-core_2.11</artifactId> 
      <version>1.2.1</version> 
     </dependency> 
    </dependencies> 
</project> 
0

Есть 2 типа Спарк JAR-файлов (просто посмотрев на имя):

  • Название включает слово «сборка», а не «ядро» (имеет внутри Scala)

  • Название включает в себя слово «ядро», а не «сборку» (без Scala внутри).

Вы должны включать в себя тип «основной» в вашем Build Path через «Add External Jars» (версия вам нужно), так как Scala IDE уже засовывает один Scala для вас.

В качестве альтернативы, вы можете просто воспользоваться СБТ и добавьте следующий Завис (опять же, обратите внимание на версии, вам нужно):

libraryDependencies + = «org.apache.spark»% «искрового core_2 .11 "%" 2.1.0 "

Тогда вы НЕ должны включать« принудительно »любой искровой JAR в пути сборки.

Днем искрение:

Зар

>

Смежные вопросы