栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

flink 本地环境使用scala实现词频统计

flink 本地环境使用scala实现词频统计

一、构建本地flink项目

java语言的场景

mvn archetype:generate                               
      -DarchetypeGroupId=org.apache.flink              
      -DarchetypeArtifactId=flink-quickstart-java      
      -DarchetypeVersion=1.9.0

scala语言的场景

mvn archetype:generate                               
      -DarchetypeGroupId=org.apache.flink              
      -DarchetypeArtifactId=flink-quickstart-scala      
      -DarchetypeVersion=1.9.0

二、实现词频统计

写惯了java,本来是想要用java的,但是实在是资料不好找,不得不向现实屈服,选择了scala

批作业,实现读取文件的词频统计

    val env = ExecutionEnvironment.getExecutionEnvironment

    val dataset = env.readTextFile("/Users/jiayue/Downloads/select.txt");
    dataset.flatMap{_.toLowerCase.split(" ");}
        .filter(_.nonEmpty)
        .map{(_,1)}
        .groupBy(0)
        .sum(1)
        .print();

流作业,实现输入数据实时的词频统计

创建一个流

nc -lk 9999

实时计算流数据

    val env = StreamExecutionEnvironment.getExecutionEnvironment

    val dataStream: DataStream[String] = env.socketTextStream("127.0.0.1",9999,'n')
    dataStream.flatMap{line => line.toLowerCase.split(",")}
        .filter(_.nonEmpty)
        .map{word => (word , 1)}
        .keyBy(0)
        .timeWindow(Time.seconds(3))
        .sum(1)
        .print()


    // execute program
    env.execute("Flink Streaming Scala API Skeleton")

执行效果

输入 “唧,唧,复,唧,唧,木,兰,当,户,织”

4> (唧,4)
2> (木,1)
3> (复,1)
4> (户,1)
2> (织,1)
3> (当,1)
4> (兰,1)

三、问题解决

报错信息:

Exception in thread main java.lang.NoClassDefFoundError:ExecutionEnvironment

将pom.xml文件中的 如下内容注释掉。

provided
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355190.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号