05 RDD编程

一、词频统计:

读文本文件生成RDD lines

 

 

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

 

 

 

 

全部转换为小写 lower()

 

 

 

 

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

 

 

 

 

去掉停用词

1.准备停用词文本:

 

 

  2.去除停用词:

 

 

 

 

 

 

 

转换成键值对 map()

 

 

 

 

统计词频 reduceByKey()

 

 

按字母顺序排序 sortBy(f)

截图:

按词频排序 sortByKey()

 

 

 

行动操作练习:

first()         

返回第一个元素

take(n)       

返回前n个元素

takeOrdered(n)

返回排序后的前n个元素

top(n)        

返回最大的n个元素

collect()     

返回所有元素,列表

collectAsMap()

返回所有元素的字典,MAP形式的串行化

count()

返回元素个数

countByValue()

返回每个元素重复个数,字典

countByKey()

返回的是每一键组内的记录数,字典

lookup(key)

返回某键值下的所有值,列表

 

二、学生课程分数案例

  • 总共有多少学生?map(), distinct(), count()
  • 开设了多少门课程?
  • 每个学生选修了多少门课?map(), countByKey()
  • 每门课程有多少个学生选?map(), countByValue()
  • Leo选修了几门课?每门课多少分?filter(), map() RDD
  • Leo选修了几门课?每门课多少分?map(),lookup()  list
  • Leo的成绩按分数大小排序。filter(), map(), sortBy()
  • Leo的平均分。map(),lookup(),mean()
  • 生成(课程,分数)RDD,观察keys(),values()
  •  

     

  • 每个分数+5分。mapValues(func)
  •  

     

  • 求每门课的选修人数及所有人的总分。combineByKey
  •  

     

     

     

  • 求每门课的选修人数及平均分,精确到2位小数。map(),round()
  •  

     

  • 求每门课的选修人数及平均分。用reduceByKey()实现,并比较与combineByKey()的异同
  •  

     

posted @ 2021-06-06 22:47  庄玉峰  阅读(29)  评论(0编辑  收藏  举报