首页 > 其他 > 详细

05 RDD练习:词频统计

时间:2021-04-05 22:15:19      阅读:45      评论:0      收藏:0      [点我收藏+]

一、词频统计:

1.读文本文件生成RDD lines

2.将一行一行的文本分割成单词 words flatmap()

lines=sc.textFile("file:///usr/local/spark/mycode/rdd/word.txt")

lines.foreach(print)

 words=lines.flatMap(lambda line:line.split())

words.foreach(print)

技术分享图片

 

 技术分享图片

3.全部转换为小写 lower()

4.去掉长度小于3的单词 filter()

5.去掉停用词

wordsxx=lines.map(lambda word:word.lower())

wordsxx.foreach(print)

word=words.filter(lambda words:len(words)>2)

word.foreach(print)

lines=textFile("file:///usr/local/spark/mycode/rdd/word.txt")

with open("/usr/lcaol/spark/mycode/rdd/stopwords.txt") as f:

      stops=f.read().split()

lines.flatMap(lambda line:line.split()).filter(lambda word:word not in stops).collect()

技术分享图片

 

 技术分享图片

 

 技术分享图片

6.转换成键值对 map()

7.统计词频 reduceByKey()

words.map(lambda word:(word,1)).collect()

words.map(lambda word:(word,1)).reduceByKey(lambda a,b:a+b).collect()

技术分享图片

 

 技术分享图片

 

 

二、学生课程分数 groupByKey()

-- 按课程汇总全总学生和分数

1. 分解出字段 map()

2. 生成键值对 map()

3. 按键分组 

4. 输出汇总结果

lines=textFile("file:///usr/local/spark/mycode/rdd/xs.txt")

groupKm=lines.map(lambda line:line.split(‘,‘)).map(lambda line:(line[1],1)).groupByKey()

groupKm.foreach(print)

技术分享图片

 

 

三、学生课程分数 reduceByKey()

-- 每门课程的选修人数

lines=textFile("file///usr/local/spark/mycode/rdd/xs.txt")

groupKm=lines.map(lambda line:line.split(‘,‘)).map(lambda line:(line[1],1)).reduceByKey(lambda a,b:a+b)

groupKm.foreach(print)

技术分享图片

 

 

-- 每个学生的选修课程数

groupName=lines.map(lambda line:line.split(‘,‘)).map(lambda line:(line[0],1)).reduceByKey(lambda a,b:a+b)

groupName.foreach(print)

技术分享图片

 

05 RDD练习:词频统计

原文:https://www.cnblogs.com/jienijieni/p/14619180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!