2015-04-09 1 views
10

Je vais avoir des problèmes en utilisant l'API Apache Flink ScalaFlink API Scala « Pas assez d'arguments »

Par exemple, même quand je prends les exemples de la documentation officielle, le compilateur scala me donne des tonnes d'erreurs de compilation.

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 produit les éléments suivants pour la ligne 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. 

Il est non seulement fromElements méthode: même si je l'ai lu à partir d'un fichier et puis essayer de faire quelque chose aussi simple comme ds.map(r => r), je reçois quelque chose de très similaire

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. 

J'ai essayé deux versions de Flink: 0.8.1 de Maven Central et la plus récente du référentiel github.

Je suis sous Windows 7, scala 2.10.4, jdk 1.7.0_25, la version Scala IDE est 3.0.3-20140327-1716-Typesafe sur le dessus d'Eclipse 4.3.0

Qu'est-ce que je fais mal ?

Répondre

19

Vous devez ajouter l'importation suivante à votre code:

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

Ensuite, l'exemple fonctionne.

+1

Merci Robert. Bien qu'il résout les problèmes décrits, j'ai encore d'autres problèmes avec les paramètres génériques. Pourriez-vous s'il vous plaît jeter un oeil à un suivi ici http://stackoverflow.com/questions/29542214 –

+0

J'ai transmis la question ...;) –