Scala 找不到证据参数的隐式值
我正在写一个简单的单词计数flink作业,但我不断遇到以下错误:Scala 找不到证据参数的隐式值,scala,apache-flink,flink-streaming,Scala,Apache Flink,Flink Streaming,我正在写一个简单的单词计数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}} 我在网上搜索,但找不到任何可以理解的答案 这是我的密码
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")
}
}
添加以下内容:
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")
}
}
你必须进口
import org.apache.flink.api.scala._
启用隐式转换,而不是为您使用的每种类型创建隐式值。尝试回答这个问题,它可能也会对您有所帮助:我已经导入了所有必要的库,包括flink.api.scala.\u和flink.streaming.api.scala.\u问题是数据流[(String,Int)]上没有groupBy(…)方法在flink中(版本1.0.3)。有一个keyBy(Int)方法将生成KeyedStream[(String,Int),Tuple]。您能否尝试删除
导入flink.api.scala.\u
,因为流式处理以及批处理scala包对象导入createTypeInformation
。因此,这些进口可能会发生冲突。