如何在Scala中使用Flink应用简单过滤器

如何在Scala中使用Flink应用简单过滤器,scala,filter,apache-flink,flink-streaming,Scala,Filter,Apache Flink,Flink Streaming,我用的是老版本的Flink。我升级到1.2.0,我的过滤器有一些问题 我有一个日志数据流,它工作得很好: val logs: DataStream[Log] = env.addSource(new LogSource( data, delay, factor)) // DISPLAY TUPLE IN CONSOLE logs.print() // EXECUTE SCRIPT env.execute("stream") 我当然已经阅读了文件,其中显示: dataSt

我用的是老版本的Flink。我升级到1.2.0,我的过滤器有一些问题

我有一个日志数据流,它工作得很好:

 val logs: DataStream[Log] = env.addSource(new LogSource(
      data, delay, factor))

 // DISPLAY TUPLE IN CONSOLE
 logs.print()

 // EXECUTE SCRIPT
 env.execute("stream")
我当然已经阅读了文件,其中显示:

dataStream.filter { _ != 0 }
我试过很多类似的方法:

val cleanLogs = logs.filter { _.isComplete }
但我得到了以下错误:

类型不匹配,应为:FilterFunction[Log],实际为:Any=>An

所以我看不到文档和这个错误之间的联系。 有什么帮助吗?例子


感谢

问题首先是错误导入了StreamExecutionEnvironment,这导致了过滤器等基本功能出现此问题

然后,当我使用旧版本的Flink时,我使用的是LocalExecutionEnvironment类,该类在Flink 1.X中不再可用


相反:StreamExecutionEnvironment.CreateLocalEnvironment 1

isComplete方法的签名是什么?它不是一个方法,Log的第一个属性是布尔值:isComplete。它在Flink 0.10上运行得非常好,但可能不再可能了?我真的无法重现你的问题。我唯一想到的是一些错误的进口商品。确保您正在导入DataStream和StreamExecutionEnvironment的scala版本。在scala中,最好总是导入org.apache.flink.streaming.api.scala.\u我想你是对的,org.apache.flink.streaming.api.scala.\u被我的IDE称为未使用。我将研究它,它来自我导入的StreamExecutionEnvironment事实上,现在我必须找出LocalStreamEnvironment的问题,无论如何,多亏了您,我离解决方案更近了。