2016-11-16 125 views
1

http://spark.apache.orgのコードがあります。私は、エラーの下に取得しています....スパークJavaエラー:ラムダ式は-sourceでサポートされていません1.5

コード:

JavaRDD<String> lines = sc.textFile(logFile); 
JavaPairRDD<String, Integer> pairs = lines.mapToPair(s -> new Tuple2(s, 1)); 

エラー:

ラムダ式は、-source 1.5でサポートされていません(ラムダ式を有効にするには、-source 8以降を使用)

しかし、以下のコードは完全に正常に動作します。理由を見つけるのを手伝ってもらえますか?

新しいコード:

JavaRDD<String> lines = sc.textFile(logFile); 
JavaPairRDD<String, String> prodPairs = lines.mapToPair(new PairFunction<String, String, String>() { 
      public Tuple2<String, String> call(String s) { 
       String[] prodSplit = s.split(","); 
       return new Tuple2<String, String>(prodSplit[2], prodSplit[0]+","+prodSplit[1]+","+prodSplit[2]); 
      } 
     }); 
+0

ラムダ式が –

+0

@Vijay K ...のJava 8で導入されました:あなたが使用しているのJavaバージョンは何? LambdaはJava 8で導入されています。既にJava 8を使用している場合は、プロジェクトのビルドパスに移動して、Eclipse IDEでJavaバージョンとコンパイラの詳細を変更できます。 – Shankar

+0

Mavenを使用していますか? –

答えて

0

使用しているのJavaバージョンは何? Lambda expressions(->)Java 8に導入されています.8未満のJavaを使用すると、動作しなくなります。

すでにJava 8をお持ちの場合は、プロジェクトビルドパスとselect the correct compiler version and jdk versionに移動して、Eclipse IDEでJavaバージョンとコンパイラの詳細を変更できます。

コマンドラインからmavenを実行している場合、まずJavaホームを設定してからビルドを実行できます。例については

set JAVA_HOME=<JDK Location> 

その後、

mvn clean install 
+0

ありがとうShankar。 Javaを初めて使うjava --versionが表示されます:java version "1.8.0_111"。なぜMavenが古いバージョンを使用しているのかわかりません。私は変更が必要な設定はありますか? –

+0

@VijayK:私の答えを更新しました。 – Shankar

0

あなたはLambda Expression docsを読むことをお勧めします。これはJDK 1.8で追加されました。あなたのコードの最初の部分の矢印演算子の使用法はラムダ式です。 Java 1.5でコードをコンパイルしているようです。したがって、正しくエラーが発生しています。 2番目のコードでは、ラムダ式を従来のコードに置き換えました。したがって、コンパイラは不平を言った。正当な理由がない限り、コンパイラを1.8にアップグレードすることをお勧めします。 JDKの後続バージョンで追加された多くの優れた機能が欠けています。

0

あなたはmavenを使用していますか? Javaの1.5へのデフォルトのMavenの使用ソースとターゲットのコンパイルによって

はまた、独立してJDKのあなたはMavenの を実行し、現在ではデフォルトのソースの設定は1.5であると デフォルトのターゲット設定は1.5であることに注意してくださいと。これらのデフォルト値を変更する場合は、Java コンパイラの-sourceおよび-targetの設定の説明に従って、sourceおよび ターゲットを設定する必要があります。 Source

あなたはポンポンビルドコンパイラプラグインで構成する必要があります。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
<build> 
関連する問題