课程主要实用内容:

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]

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. Introduction to Big Data with PySpark

    起因 大数据时代 大数据最近太热了,其主要有数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据真实性高(Veracity)4个特点,合起来被称为4V. ...

  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. Using Apache Spark and MySQL for Data Analysis

    What is Spark Apache Spark is a cluster computing framework, similar to Apache Hadoop. Wikipedia has ...

  6. Apache Spark : Introduction

    看了一点<数据算法:Hadoop/Spark大数据处理技巧>,觉得有必要了解一下 Spark . 以上. Spark was introduced by Apache Software F ...

  7. 【译】Using .NET for Apache Spark to Analyze Log Data

    .NET for Spark可用于处理成批数据.实时流.机器学习和ad-hoc查询.在这篇博客文章中,我们将探讨如何使用.NET for Spark执行一个非常流行的大数据任务,即日志分析. 1 什么 ...

  8. Apache Spark源码走读之5 -- DStream处理的容错性分析

    欢迎转载,转载请注明出处,徽沪一郎,谢谢. 在流数据的处理过程中,为了保证处理结果的可信度(不能多算,也不能漏算),需要做到对所有的输入数据有且仅有一次处理.在Spark Streaming的处理机制 ...

  9. Spark(1) - Getting Started with Apache Spark

    Introduction Apache Spark is a general-purpose cluster computing system to process big data workload ...

随机推荐

  1. javascript之尺寸,位置,溢出

    一.offsetWidth:元素的宽度,包括边框,内容,内边距. 二.offsetHeight:元素的高度,包括边框,内容,内边距. 三.offsetLeft:元素的X坐标(相对于最近已定位的祖先元素 ...

  2. SQL Serverf 索引 - 索引压缩 、附加特性 <第十篇>

    一.索引压缩 数据和索引压缩在SQL Server2008被引入.压缩一个索引意味着将在一个页面中获得更多的关键字信息.这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少.因为索引中的键值 ...

  3. scheme一页纸教程

    这是一个大学教授写的,非常好,原文:http://classes.soe.ucsc.edu/cmps112/Spring03/languages/scheme/SchemeTutorialA.html ...

  4. Validate Binary Search Tree 解答

    Question Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is d ...

  5. 程序猿必备的10款web前端开发插件一

    1.CSS3实现的火柴燃烧Loading加载动画 这次我们要给大家分享一款非常特别的CSS3 Loading加载动画,整个Loading加载动画就好像是火柴在燃烧一样,不足的是火苗并没有那么真实,比较 ...

  6. 关于uitableView的Group模式滑动偏移问题

    问题: uitableView的group模式自带一个section的headerView,如果不调整,系统就会默认高度,在滑动时就会向下偏移一个单位的scetion高度,我们改变tableView的 ...

  7. Sublime Text 2 介紹

    代码编辑器或者文本编辑器,对于程序猿来说,就像剑与战士一样,谁都想拥有一把能够随心驾驭且瑞丽无比的宝剑,而每一位程序猿,相同会去追求最适合自己的强大.灵活的编辑器,相信你和我一样,都不会例外. 我用过 ...

  8. Cocos2d-X中实现菜单特效

    Cocos2d-X中能够讲菜单和动作结合起来使用实现菜单特效 程序实例1:使用菜单和动作的组合实现菜单特效<一> #include "MenuItem.h" CCSce ...

  9. ThinkPHP中的__initialize()和类的构造函数__construct()

    ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对 ...

  10. 【高精度+DP】【HDU1223】 OrderCount

    Order Count Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...