5.RDD操作和综合实例

一、词频统计

A. 分步骤实现 

1、准备文件

下载小说或长篇新闻稿

上传到hdfs上

2、读文件创建RDD

3、分词

4、排除大小写lower(),map()

标点符号re.split(pattern,str),flatMap(),

停用词,可网盘下载stopwords.txt,filter(),

长度小于2的词filter()

 5、统计词频

 6、按词频排序

 7、输出到文件

 8、查看结果

 B. 一句话实现:文件入文件出

C. 和作业2的“二、Python编程练习:英文文本的词频统计 ”进行比较,理解Spark编程的特点。

1.轻量级快速处理 
   大数据处理中速度往往被置于第一位,Spark允许传统Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能快10倍。Spark通过减少磁盘IO来达到性能的提升,它们将中间处理数据全部放到了内存中。Spark使用了RDD数据抽象,这允许它可以在内存中存储数据,只在需要时才持久化到磁盘。这种做法大大的减少了数据处理过程中磁盘的读写,大幅度的降低了运行时间。
  2.易于使用 
  Spark支持多语言。Spark允许Java、Scala、Python及R(Spark1.4版最新支持),这允许更多的开发者在自己熟悉的语言环境下进行工作,普及了Spark的应用范围,它自带80多个高等级操作符,允许在shell中进行交互式查询,它多种使用模式的特点让应用更灵活。
  3.支持复杂查询 
  除了简单的map及reduce操作之外,Spark还支持filter、foreach、reduceByKey、aggregate以及SQL查询、流式查询等复杂查询。Spark更为强大之处是用户可以在同一个工作流中无缝的搭配这些功能,例如Spark可以通过SparkStreaming(1.2.2小节对SparkStreaming有详细介绍)获取流数据,然后对数据进行实时SQL查询或使用MLlib库进行系统推荐,而且这些复杂业务的集成并不复杂,因为它们都基于RDD这一抽象数据集在不同业务过程中进行转换,转换代价小,体现了统一引擎解决不同类型工作场景的特点。有关Streaming技术以及MLlib库和RDD将会这之后几个章节进行详述。

二,求TOP值

1.丢弃不合规范的行:

空行

少数据项

缺失数据

 

 

 

 

 

2.按支付金额排序

 

 

3.取出Top3

 
posted @ 2022-04-07 19:35  050张自强  阅读(23)  评论(0)    收藏  举报
返回顶端