python哈姆雷特词频统计_Intellij idea配置Spark开发环境,统计哈姆雷特词频(2)

idea 新建maven 项目输入maven坐标

maven 坐标编辑maven文件

Spark 体系

中间层Spark,即核心模块Spark Core,必须在maven中引用。

编译Spark还要声明java8编译工具。

1.8

org.apache.spark

spark-core_2.11

2.1.0

maven-compiler-plugin

${java.version}

${java.version}

idea自动加载引用,在窗口左侧Project导航栏-->External Libraries中看到引用org.apache.spark中spark-core_2.11-2.1.0.jar文件。

idea Externel Libraries

注:Spark Streaming是流式计算框架、SparkSQL数据库工具、Mlib机器学习框架、GraphX图计算工具。

Java 8 lambda函数风格的wordCount//定义单词总数累加器、和停用词累加器

Accumulator countTotal = jsc.accumulator(0);

Accumulator stopTotal = jsc.accumulator(0);

// 文件初始化RDD

JavaRDD stopword = jsc.textFile("data/text/stopword.txt");

JavaRDD rdd = jsc.textFile("data/text/Hamlet.txt");

// RDD 转换为List

List stopWordList = stopword.collect();

// Broadcast 广播变量,task共享executor的变量

Broadcast> broadcastedStopWordSet = jsc.broadcast(stopWordList);

rdd.filter(l->l.length()>0)

.flatMap(l-> Arrays.asList(l.trim().split(" ")).iterator())

// 将line分割展成词向量,词向量在连接,返回Rdd

.map(v->v.replaceAll("['.,:;?!-]", "").toLowerCase())

// 特殊字符处理, Rdd

.filter(v->{

boolean isStop = false;

countTotal.add(1);

if(broadcastedStopWordSet.value().contains(v)){

stopTotal.add(1);

isStop = true;

}

return !isStop;

})

//遍历总数计数、停用词计数,过滤停止词, Rdd

.mapToPair(v-> new Tuple2<>(v,1))

.reduceByKey((v1,v2)->v1+v2)

//统计个数

.mapToPair(p-> new Tuple2<>(p._2,p._1))

.sortByKey(false)

//排序

.take(10).forEach(e->{

System.out.println(e._2+":"+e._1);

});将line分割展成词向量,词向量连接,flatmap返回Rdd

特殊字符处理,返回 Rdd

遍历总数计数、停用词计数,过滤停止词, 返回Rdd

Reduce Rdd,返回Rdd

排序 SortByKey,返回 Rdd

后期有更多案例介绍Java 8 lambda风格的RDD开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值