2015-04-09 23 views
10

Ich habe Probleme Apache Flink Scala APIFlink Scala API „nicht genügend Argumente“

Zum Beispiel, auch wenn ich die Beispiele aus der offiziellen Dokumentation nehmen, gibt der scala Compiler mich Tonnen Kompilierungsfehlern.

Code:

object TestFlink { 

    def main(args: Array[String]) { 
    val env = ExecutionEnvironment.getExecutionEnvironment 
    val text = env.fromElements(
     "Who's there?", 
     "I think I hear them. Stand, ho! Who's there?") 

    val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } } 
     .map { (_, 1) } 
     .groupBy(0) 
     .sum(1) 

    counts.print() 

    env.execute("Scala WordCount Example") 
    } 
} 

Scala IDE gibt das folgende für die Linie val text = env.fromElements

Multiple markers at this line 
    - not enough arguments for method fromElements: (implicit evidence$14: scala.reflect.ClassTag[String], implicit evidence$15: 
    org.apache.flink.api.common.typeinfo.TypeInformation[String])org.apache.flink.api.scala.DataSet[String]. Unspecified value parameter evidence$15. 
    - could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] 
    - could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String] 
    - not enough arguments for method fromElements: (implicit evidence$14: scala.reflect.ClassTag[String], implicit evidence$15: 
    org.apache.flink.api.common.typeinfo.TypeInformation[String])org.apache.flink.api.scala.DataSet[String]. Unspecified value parameter evidence$15. 

Es ist nicht nur fromElements Methode: auch wenn ich aus einer Datei lesen und dann versuchen, etwas so einfach zu tun, als ds.map(r => r), bekomme ich etwas sehr ähnliches

Multiple markers at this line 
    - not enough arguments for method map: (implicit evidence$4: org.apache.flink.api.common.typeinfo.TypeInformation[K], implicit 
    evidence$5: scala.reflect.ClassTag[K])org.apache.flink.api.scala.DataSet[K]. Unspecified value parameters evidence$4, evidence$5. 
    - could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[K] 
    - could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[K] 
    - not enough arguments for method map: (implicit evidence$4: org.apache.flink.api.common.typeinfo.TypeInformation[K], implicit 
    evidence$5: scala.reflect.ClassTag[K])org.apache.flink.api.scala.DataSet[K]. Unspecified value parameters evidence$4, evidence$5. 

Ich habe zwei Versionen von Flink ausprobiert: 0.8.1 von Maven Central und die frischste vom Github-Repository.

Ich bin läuft Windows 7, scala 2.10.4, jdk 1.7.0_25, Scala IDE-Version ist 3.0.3-20140327-1716-Typesafe auf Eclipse 4.3.0

Was mache ich falsch ?

Antwort

19

Sie müssen den folgenden Import, um Ihren Code hinzuzufügen:

import org.apache.flink.api.scala._ 

Dann wird das Beispiel funktioniert.

+1

Danke Robert. Während es die beschriebenen Probleme löst, habe ich noch andere Probleme mit generischen Parametern. Könnten Sie bitte einen Blick auf ein Follow-up hier http://stackoverflow.com/questions/29542214 –

+0

Ich leitete die Frage weitergeleitet ...;) –