Introduction to Big Data with Apache Spark——week2课题笔记

SparkContext

这里写图片描述


RDD

这里写图片描述


这里写图片描述



这里写图片描述


这里写图片描述



这里写图片描述

代码:



直接使用python的数据类型创造:

这里写图片描述

从外部文件创造:
这里写图片描述


扫描二维码关注公众号,回复: 2461217 查看本文章

Transformations

这里写图片描述

代码:

这里写图片描述

这里写图片描述

Action

这里写图片描述




代码:

这里写图片描述

这里写图片描述


Cache

这里写图片描述


这里写图片描述


Spark流程

这里写图片描述


其他注意


1. key-value类型

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


2. 共享变量



2.1 广播变量

其实就是定义了一个只读的全局变量,给所有机子缓存一份。

共享变量允许程序员将一个只读的变量缓存在每台机器上,而不是让每个任务随带一个变量的副本。广播变量为在每个节点上提供海量的输入数据集提供了一种高效的方式。Spark会尝试使用高效饿广播算法来减少分发广播变量的通信消耗。

广播变量通过调用SparkContext.broacase(v)创建, v是一个变量。广播变量是v的封装, v的值可以通过value方法访问。

代码:

broadcastVar = sc.broadcast([1, 2, 3])
broadcastVar.value

out:[1, 2, 3]



2.2 累计器

累计器是只能通过关联操作做“加”运算的变量,从而可以高效支持并行。它可以用来实现计数器或者求和。Spark原生支持数字类型的累计器,程序员可以增加对新类型的支持。 如果累加器创建时赋给了一个名字,那么这个累加器会在Spark的UI上展现。这个有利于理解程序的执行过程(遗憾的是这个功能Python中暂不支持)。


累计器通过调用函数SparContext.accumulator(v)并赋予一个初值来创建。然后跑在集群上的任务就可以使用add方法或者+=运算符增加累计器的值。但是,任务是不能读这个累计器的值得,只有驱动程序才可以通过方法value来读。

代码:

accum = sc.accumulator(0)
sc.parallelize([1, 2, 3, 4]).foreach(lambda x:/ 
                                     accum.add(x))
accum.value

out:10




总结

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_27157975/article/details/78685485
今日推荐