Coursera, Big Data 3, Integration and Processing (week 5)
Week 5, Big Data Analytics using Spark
Programing in Spark
Spark Core: Programming in Spark using RDD in pipelines

RDD 创建过后,会有两种操作,Transformation 和 Action. 只有到了Action 阶段才会验证Transformation 操作是否正确,所以经常看到Action阶段有很多报错. 叫 lazy

下图是一个具体的例子. 教程里提到了cache功能,比如从数据库query 数据放到RDD里,这个过程比较耗时,为了防止每次都去执行query操作,我们就可以把第一次的结果()也就是RDD) cache起来,但是注意使用cache 很耗内存,可能会造成瓶颈..



Spark Core: Transformation
RDD本身不能被改变,只能通过transformtion操作转成一个新的RDD

Map transformation

flatMap transfromation, 一对多
map 和 flatMap 是narrow tranformation. narrow transformation 只依赖于一个partition上的数据,并且 data suffering is not nessary.

Filter transformation

Coalesce transformation, 比如

上面谈的都是narrow transformation, 都是本地处理数据不需要在网络上传输数据。
接下来谈wide transformation

先看看reduceByKey 和 groupByKey 的区别.
groupByKey 需要跨节点的shuffle 操作,输出是一个由 初始数字 1 组成的列表

reduceByKey 其实就是 groupByKey + reduce

narrow transformation 和 wide transformation 区别: 就看有没有跨节点的 shuffle 操作, 也就是有没有跨节点取数据做操作

Spark Core: Actions

第一个Action操作是很常见的collect, 它从worker node 收集最终的结果数据copy到driver node.


其中Reduce 最常用
Main models in Spark eco
Spark SQL
做什么的?优势?



Spark SQL 提供了API可以使query来的data转成 DataFrame

具体怎么做?





Spark SQL summary

Spark Streaming




Spark Streaming summary

Spark MLlib





Spark GraphX







Spark GraphX summary

Coursera, Big Data 3, Integration and Processing (week 5)的更多相关文章
- Coursera, Big Data 3, Integration and Processing (week 1/2/3)
This is the 3rd course in big data specification courses. Data model reivew 1, data model 的特点: Struc ...
- Coursera, Big Data 3, Integration and Processing (week 4)
Week 4 Big Data Precessing Pipeline 上图可以generalize 成下图,也就是Big data pipeline some high level processi ...
- Coursera, Big Data 4, Machine Learning With Big Data (week 1/2)
Week 1 Machine Learning with Big Data KNime - GUI based Spark MLlib - inside Spark CRISP-DM Week 2, ...
- Coursera, Big Data 2, Modeling and Management Systems (week 4/5/6)
week4 streaming data format 下面讲 data lakes schema-on-read: 从数据源读取raw data 直接放到 data lake 里,然后再读到mode ...
- Coursera, Big Data 2, Modeling and Management Systems (week 1/2/3)
Introduction to data management 整个coures 2 是讲data management and storage 的,主要内容就是分布式文件系统,HDFS, Redis ...
- Coursera, Big Data 1, Introduction (week 3)
什么是分布式文件系统?为什么需要分布式文件系统? 如果文件系统可以管理用网络连接的很多个存储单元,叫分布式文件系统. 分布式文件系统提供了数据可扩展性,容错性,高并发. 这些是传统文件系统不具有的. ...
- Coursera, Big Data 1, Introduction (week 1/2)
Status: week 2 done. Week 1, 主要讲了大数据的的来源 - 机器产生的数据,人产生的数据(比如社交软件上的update, 一般是unstructed data), 组织产生的 ...
- Coursera, Big Data 4, Machine Learning With Big Data (week 3/4/5)
week 3 Classification KNN :基本思想是 input value 类似,就可能是同一类的 Decision Tree Naive Bayes Week 4 Evaluating ...
- In-Stream Big Data Processing
http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/ Overview In recent y ...
随机推荐
- c# 小数四舍五入,向上取整,向下取整,见角进元保留多个小数位数
/// <summary> /// 实现数据的四舍五入法 /// </summary> /// <param name="v">要进行处理的数据 ...
- Mac系统下Mysql存储数据报错 ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value
比如如下mysql操作插入数据: const mysql = require('mysql'); /* createConnection方法创建一个表示与Mysql数据库服务器之间连接的 Connec ...
- 微信小程序 初步认识一(微信运动步数)
1.注册微信小程序 2.安装小程序开发工具 3.实例(显示微信运动步数) 4.后端处理(c#) 一 注册微信小程序 注册地址:https://mp.weixin.qq.com/cgi-bin/regi ...
- Golang 入门系列(二)学习Go语言需要注意的坑
上一章节我们已经了解了 Go 环境的配置,不了解的,请查看前面的文章 https://www.cnblogs.com/zhangweizhong/p/9459945.html,本章节我们将学习 Go ...
- iOS开发基础-UITableView控件简单介绍
UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动. UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么 ...
- SpringBoot开发案例之拦截器注入Bean
前言 由于业务需要,需要在拦截器中操作Redis缓存,按照 controller,service层配置发现无法注入,一直报空指针异常. 解决方案 @Configuration public class ...
- 基于 WebGL 的 HTML5 楼宇自控 3D 可视化监控
前言 智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前工业互联网大背景下受到很大关注.目前智慧楼宇可视化监控的主要优点包括: 智慧化 -- 智慧楼宇是一个生态 ...
- Spring boot整合ElasticSearch案例分享+bboss
https://my.oschina.net/bboss/blog/1835601?tdsourcetag=s_pcqq_aiomsg 欢迎观看浏览
- 一些很容易被忘记的css
一些很偏门的css,用过一两次,很难记得牢,这里,我总结一些. outline 当input选中的时候会出现一个边框 /*一般设置成 none*/ textarea:focus, input:focu ...
- jdk 动态代理的原理
一.代理设计模式 代理设计模式是Java常用的设计模式之一. 特点: 01.委托类和代理类有共同的接口或者父类: 02.代理类负责为委托类处理消息,并将消息转发给委托类: 03.委托类和代理类对象通常 ...