Flink之wordcount

小编初学flink,看到各大论坛上有各种不同版本的,有一些还运行不了,小编就参照官网写了一个

pom文件是这样的

<dependencies>
    <!--flink——scala的依赖-->
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-scala_2.11</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-scala_2.11</artifactId>
        <version>1.6.1</version>
    </dependency>
    <!--解决日志报错SLF4J-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.2</version>
     </dependency>
</dependencies>

scala代码

object WordCount {
  def main(args: Array[String]): Unit = {

    //获取运行环境
    val env= ExecutionEnvironment.getExecutionEnvironment

    //获取数据
    val text = env.readTextFile("E:\\Learning\\log.txt")

    //必须写,不写下面代码会报错  
    import org.apache.flink.api.scala._

    val counts = text.flatMap(_.toLowerCase.split("\\W+")filter(_.nonEmpty))
      .map((_,1))
      .groupBy(0)
      .sum(1)
    counts.print()

  }
}

其中遇到了两个错误

1、写flatMap时代码报错

解决方案,加上

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

官网解释: https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/types_serialization.html#type-information-in-the-scala-api

2、程序能执行,但是控制台报错(强迫症)
slf4j报错
官网的解释

This error is reported when the org.slf4j.impl.StaticLoggerBinder class could not be loaded into memory. This happens when no appropriate SLF4J binding could be found on the class path. Placing one (and only one) of slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar on the class path should solve the problem.

解决方案:在Maven工程的pom文件中随便加上依赖就可以了

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.2</version>
     </dependency>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值