课程主要实用内容:

1.spark实验环境的搭建
2.4个lab的内容
3.常用函数
4.变量共享
1.spark实验环境的搭建(windows)

a. 下载,安装visualbox

管理员身份运行;课程要求最新版4.3.28,如果c中遇到虚拟机打不开的,可以用4.2.12,不影响

b. 下载,安装vagrant,重启

管理员身份运行

c. 下载虚拟机

c1.将vagrant加入path,D:\HashiCorp\Vagrant\bin

c2.创建虚拟机存放的目录,比如myvagrant

c3.下载文件mooc-setup-master.zip,解压后,拷贝Vagrantfile到myvagrant

c4.打开visual box图形界面,进入cmd,cd到myvagrant,敲命令   vagrant up

开始下载虚拟机,并打开,如果下载完成,但是打开虚拟机出错;

可以到visual box 图形界面点击打开,碰到一下错误,可尝试用4.2.12版visual box

使用说明:i.打开关闭虚拟机:打开visual box 界面,cd进入myvagrant

vagrant up 打开虚拟机,vagrant halt 关闭虚拟机

ii.ipython notebook,进入http:\\localhost:8001

停止正在运行的notebook,点击running,停止

点某 .py文件,运行note book

iii.下载ssh软件,可登入虚拟机,地址为127.0.0.1,端口2222,用户名vagrant,密码vagrant

进入后,敲pyspark,可进入pyspark交互式界面

3.常用函数

Spark中Rdd的生命周期

创建RDD(parallelize、textFile等)

对RDD进行变换

(会创建新的RDD,不会改变原RDD,有

1.对每个元素进行操作-map,flatMap,mapValues

2.筛选  filter

3.排序 sortBy

3.合并结果 reduceByKey,groupByKey

4.合并两个rdd union,join,leftJoin,rightJoin)

以上步骤中rdd都只相当于一个操作手册,并没有真实地在内存中产生数据,称为lazy evaluation

缓存rdd到内存中 cache() ,判断是否cache,访问 .is_cached属性

触发evaluation(包括top,take,takeOrdered,takeSample,sum,count,distinct,reduce,collect,collectAsMap)

4.变量共享

spark有两种变量共享方式

a.广播 broadcast,broadcast后的变量每个partition都会存储一份,但是只能读取,不能修改

>>> b=sc.broadcast([1,2,3,4,5])

>>> sc.parallelize([0,0]).flatMap(lambdax:b.value)

b.累加器 accumulator,只能写,不能在worker被读取

如果累加器只是一个标量,使用很简单

>>> rdd = sc.parallelize([1,2,3])
>>> def f(x):
... global a
...     a += x
>>> rdd.foreach(f)
>>> a.value
13

如果累加器是一个向量,需要定义AccumulatorParam,且zero方法和addInPlace都要实现

>>> from pyspark.accumulators import AccumulatorParam
>>> class VectorAccumulatorParam(AccumulatorParam):
...  def zero(self, value):
...         return [0.0] * len(value)
...  def addInPlace(self, val1, val2):
...    for i in xrange(len(val1)):
...      val1[i] += val2[i]
...      return val1
>>> va = sc.accumulator([1.0, 2.0, 3.0], VectorAccumulatorParam())
>>> va.value
[1.0, 2.0, 3.0]>>> defg(x):
... global va
... va += [x] * 3
>>> rdd.foreach(g)
>>> va.value
[7.0, 8.0, 9.0]
来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/porco/p/4642512.html

Introduction to Big Data with Apache Spark 课程总结相关推荐

  1. CS100.1x Introduction to Big Data with Apache Spark

    CS100.1x简介 这门课主要讲数据科学,也就是data science以及怎么用Apache Spark去分析大数据. Course Software Setup 这门课主要介绍如何编写和调试Py ...

  2. 多云时代下数据管理技术_建立一个混合的多云数据湖并使用Apache Spark执行数据处理...

    多云时代下数据管理技术 Azure / GCP / AWS / Terraform / Spark (Azure/GCP/AWS/Terraform/Spark) Five years back wh ...

  3. Why Apache Spark is a Crossover Hit for Data Scientists [FWD]

    Spark is a compelling multi-purpose platform for use cases that span investigative, as well as opera ...

  4. Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)

    文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API--DataFrame ...

  5. line和spline_探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)

    line和spline 最近引起我注意的一个有趣且很有希望的开源项目是Spline ,它是由Absa维护的Apache Spark数据沿袭跟踪和可视化工具. 该项目由两部分组成:一个在驱动程序上工作的 ...

  6. 探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)

    最近引起我注意的一个有趣且充满希望的开源项目是Spline ,它是由Absa维护的Apache Spark的数据沿袭跟踪和可视化工具. 该项目由两部分组成:一个在驱动程序上工作的Scala库,该驱动程 ...

  7. Redis RU101课程 Introduction to Redis Data Structures 第5周学习笔记

    Geospatial 在这一周,经纬度的概念非常重要,请参考 在任何一本地图上,你都可以看到经线和纬线纵横交织,它们的作用就是为了确定一个地点或地区的位置. 地球像陀螺那样斜着身子旋转着,南极和北极就 ...

  8. macos 安装scala_如何在MacOS上安装Scala和Apache Spark

    macos 安装scala by Jose Marcial Portilla 通过何塞·马西尔·波蒂利亚(Jose Marcial Portilla) 如何在MacOS上安装Scala和Apache ...

  9. Spark SQL: Relational Data Processing in Spark

    Spark SQL: Relational Data Processing in Spark Spark SQL : Spark中关系型处理模块 说明: 类似这样的说明并非是原作者的内容翻译,而是本篇 ...

最新文章

  1. Robotium todolist.test.elements
  2. Linux 普通进程 后台进程 守护进程(转)
  3. reactjs基础知识:原生事件绑定
  4. 计算机在管理会计应用中的作用,计算机在现代管理会计中的应用(共3736字).doc...
  5. 纯css3实现的鼠标悬停动画按钮
  6. 序列化反序列化--Xstream的使用
  7. layui横向时间线_操盘线:线上阴线满仓,线下阳线清仓
  8. 字符转获取拼音首字母php实现
  9. html 动画过度转换的用法,css(动画,过渡,转换)
  10. ubuntu 导入mysql_Ubuntu16.04系统mysql命令导入导出sql文件
  11. vscode实现右键文件夹选择open with code
  12. 安装EUCALYPTUS
  13. 数据结构实验:数制转换
  14. matlab时频工具箱简介,matlab时频分析工具箱下载_matlab时频分析工具箱官方下载-太平洋下载中心...
  15. 介绍两种常见软件开发模式:“敏捷”和“瀑布”
  16. 债券收益率预测模型_股债收益率模型看A股估值 股债收益率模型(EYBY)是一个经典的股市估值模型,其基本思想是将“股票收益率”(EY)与“债券收益率”(BY)进行对比... - 雪球...
  17. 程序员的第一次相亲,还没开始,就已经结束了
  18. 安卓 魔窗SDK 快速接入
  19. 飞桨领航团AI达人创造营1-让人拍案叫绝的创意都是如何诞生的?(创意课程)
  20. C++Primer第五版——习题答案详解(六)

热门文章

  1. Linux下常用软件
  2. 论文阅读:Multi-Scale Triplet CNN for Person Re-Identification
  3. hust sci列表
  4. 【Python学习系列二十二】pandas数据筛选和排序
  5. MapReduce基础开发之九JDBC连接Hive
  6. 关于Hadoop多用户管理支持客户端远程操作的理论总结
  7. 某八位微型计算机地址为20位,微机原理作业及参考答案
  8. 业余学python数据挖掘怎么赚钱_0基础转行学Python,学到什么地步能拿到月薪15k+?...
  9. 转载:sqlmap的应用实战
  10. Java.util.Random 各种方法介绍