我正在写一个简单的单词计数flink作业,但我一直收到这个错误:
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")
}
}
答案 0 :(得分:0)
添加:implicit val typeInfo = TypeInformation.of(classOf[(String)])
作为def main(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")
}
}
答案 1 :(得分:0)
您必须导入
import org.apache.flink.api.scala._
启用隐式转换,而不是为所使用的每种类型创建隐式值。