scala-找不到证据参数的隐式值


0

我正在写一个简单的字数统计 Flink job ,但我一直得到这个错误:

could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[String]
[error]  .flatMap{_.toLowerCase.split("\W+") filter {_.nonEmpty}}

我在网上搜了一下,但找不到任何可以理解的答案。

这是我的代码:

object Job {
  def main(args: Array[String]) {
    // set up the execution environment
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    val dataStream = env.readTextFile("file:///home/plivo/code/flink/scala/flinkstream/test/")

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


dataStream.print()
env.execute("Flink Scala API Skeleton")
}

}

2 答案


0

你必须进口

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

启用隐式 transformation,而不是为所使用的每个类型创建隐式值。


0

添加:隐式val typeInfo=类型信息(classOf[(String)])作为defmain(args:Array[String]){…}中的第一行,为我修复了这个问题。

object Job {
  def main(args: Array[String]) {
    implicit val typeInfo = TypeInformation.of(classOf[(String)]) //Add this here
    // set up the execution environment
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    val dataStream = env.readTextFile("file:///home/plivo/code/flink/scala/flinkstream/test/")

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


dataStream.print()
env.execute("Flink Scala API Skeleton")
}

}


我来回答

写文章

提问题

面试题