flink编写keyby用了报错

代码

import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.zookeeper.KeeperException.SystemErrorException
import org.apache.flink.streaming.api.scala._
import org.apache.flink.api.common.functions
import org.apache.flink.api.java.tuple.{Tuple, Tuple1}
object Flink2 {
  def main(args: Array[String]): Unit = {
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    env.setParallelism(1)
    val value = env.readTextFile("D:\\Flink2\\src\\main\\java\\a")
    value.map(x=>x.split(",")).filter(_(3)=="pv").keyBy(_(0))
    env.execute()
  }
}

问题:

```scala
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FoldFunction
    at org.apache.flink.streaming.api.scala.package$.asScalaStream(package.scala:51)
    at org.apache.flink.streaming.api.scala.DataStream.keyBy(DataStream.scala:418)
    at Flink2$.main(Flink2.scala:17)
    at Flink2.main(Flink2.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.functions.FoldFunction
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 4 more

为什么keyby会报错这个

img


可以参考这篇博文