Spark 原理_总结介绍_案例编写 | 学习笔记

简介: 快速学习 Spark 原理_总结介绍_案例编写

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Spark 原理_总结介绍_案例编写】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/12005


Spark 原理_总结介绍_案例编写


编写 word count作为案例,原因有二。通过案例学习 spark 原理,要将目标放在原理上,使得案例尽可能简单,且案例中的算子要丰富。重新编写 word count 案例,基于 spark 原理始终,包括 RDD 的生成和执行,物理都基于案例进行,所以复习 word count 很有必要。

进入笔记,案例如下图:

image.png

打开 idea,创建 Scala class,命名为 sourceanalysis,命名方法 test,定义为 Word count,进行编写。

步骤如下:

1.   创建 sc 对象

创建 conf 对象,new sparkconf().设置两个参数,

valconf=newSparkConf().setMaster("local[6]").setAppName("wordcount source")

val sc=new SparkContext(conf)

2.创建数据集

命名为 test,通过 sc 生成 RDD,接受字符串,

val textRDD=sc.parallelize(Seq("hadoop spark", "hadoop flume", "spark sqoop"))

3、数据处理  

步骤如下:

拆词。一句话拆成单词,一个字符串要拆成多个词,多个单词是一个数组,使用 flatmap 展开,对于 item 进行splititem 可以换成下划线,这是Scala的语法,命名为 splitRDD

val splitRDD =textRDD.flatMap(_.split(regex=""))

赋予初始词频。将 splitRDD 每个单词转化为单词对应

一的形式,使用 splitRDD,生成词频。指定对象名字,命名为 tupleRDD,为原组的意思。

splitRDD.map((_1))

聚合统计词频。使用 curr+agg,简写为_+_,第一个_

代表 curr,第二个_代表 agg,当_在函数简写形式中出现两次,代表两个参数,而不是同一个参数的两次,生成的RDD reduceRDD

val reduceRDD=tupleRDD.reduceByKey(_+_)

4.将结果转为字符串  额外要求,要看到字符串需要进行转换。

reduceRDD 转化成字符串,map 接受了一个参数,生成字符串,加一个 s,生成 s 字符串,使用$_+_.1意为取唯一的参数当中的第一个参数,而此时不适合使用_,原因是后面的_2,指代第二个参数却没有参数,所以选择传统方式,(item>),转成字符串加s,两个部分。

字符串生成后,第一位是 k,第二位是 value。取名为 strRDD

val strRDD =reduceRDD.map( item => s"${item._1}${item._2}")

5. 结果获取。

使用 strRDD,进行结果获取,item 转为_形式,

strRDD.collect().foreach(println(_))

6. 关闭 sc,执行。

Sc.stop()

运行代码,结果如下:

image.png

从第一项开始取,结果正确。

字符串的生成是相对应的,从reduce的第一项开始取,只第二项的 value,即为词频,

在一个简写形式当中,出现了两个下划线,指代的不是同一个参数的两次出现,而是两个参数。因此此函数中无法使用下划线,无法只取一个函数。

相关文章
|
2月前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
24 0
|
2月前
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
|
2月前
|
存储 分布式计算 数据处理
bigdata-35-Spark工作原理
bigdata-35-Spark工作原理
22 0
|
2月前
|
SQL 分布式计算 数据可视化
Spark SQL案例【电商购买数据分析】
Spark SQL案例【电商购买数据分析】
|
9月前
|
SQL 分布式计算 资源调度
线上 hive on spark 作业执行超时问题排查案例分享
线上 hive on spark 作业执行超时问题排查案例分享
|
2月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
118 0
|
2月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
253 0
|
3天前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
|
2月前
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
35 1
|
2月前
|
SQL 分布式计算 数据挖掘
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
120 0