2015-04-09 9 views
10

sto avendo problemi usando Apache Flink Scala APIFlink Scala API "non abbastanza argomenti"

Per esempio, anche quando prendo gli esempi dalla documentazione ufficiale, il compilatore Scala mi dà tonnellate di errori di compilazione.

Codice:

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 in uscita la seguente per la linea 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. 

Non è solo fromElements metodo: anche se ho letto da un file e poi cerco di fare qualcosa di semplice come ds.map(r => r), ottengo qualcosa di molto simile

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. 

Ho provato due versioni di Flink: 0.8.1 da Maven Central e la più recente dal repository github.

Sono in esecuzione Windows 7, Scala 2.10.4, JDK 1.7.0_25, la versione Scala IDE è 3.0.3-20140327-1716-Typesafe in cima ad Eclipse 4.3.0

Che cosa sto facendo di sbagliato ?

risposta

19

È necessario aggiungere la seguente importazione al codice:

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

Poi l'esempio funziona.

+1

Grazie Robert. Mentre risolve i problemi descritti, ho ancora altri problemi con i parametri generici. La prego di dare un'occhiata al follow-up qui http://stackoverflow.com/questions/29542214 –

+0

Ho inoltrato la domanda ...;) –

Problemi correlati