Spark学习--持续更新
2017-04-26 17:19
183 查看
1、spark三种语言对比:
使用scala是greate,python是nice,java是ugly。2、spark RDD(Resilient Distributed Datasets弹性分布式数据集)
2.1、RDD特性:
– A list of partitions– A function for computinf each split
– A list of dependecies on other RDDs
– Optionally, a Partitioner for key-value RDDs (e.g. to say that RDD is hash-partitioned)
– Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
2、2种类型RDD
对于RDD,有两种类型的动作,一种是Transformation,一种是Action。它们本质区别是:Transformation返回值还是一个RDD。它使用了链式调用的设计模式,对一个RDD进行计算后,变换成另外一个RDD,然后这个RDD又可以进行另外一次转换。这个过程是分布式的
Action返回值不是一个RDD。它要么是一个Scala的普通集合,要么是一个值,要么是空,最终或返回到Driver程序,或把RDD写入到文件系统中
Transformations转换操作,返回值还是一个 RDD,如 map、 filter、 union;
Actions行动操作,返回结果或把RDD持久化起来,如 count、 collect、 save。
3、map和flatmp的区别
map的作用很容易理解就是对rdd之中的元素进行逐一进行函数操作映射为另外一个rdd。flatMap的操作是将函数应用于rdd之中的每一个元素,将返回的迭代器的所有内容构成新的rdd。通常用来切分单词。4、OOM
错误提示:java.lang.OutOfMemoryError。这类OOM是由于JVM分配的给应用的Heap Memory已经被耗尽,可能是因为应用在高负荷的情况下的却需要很大的内存,因此可以通过修改JVM参数来增加Java Heap Memory(不过也不能无限制增加,后面那种OOM有可能就是因为这个原因而产生)。另一种情况是因为应用程序使用对象或者资源没有释放,导致内存消耗持续增加,最后出现OOM,这类问题引起的原因往往是应用已不需要的对象还被其他有效对象所引用,那么就无法释放,可能是业务代码逻辑造成的(异常处理不够例如IO等资源),也可能是对于第三方开源项目中资源释放了解不够导致使用以后资源没有释放(例如JDBC的ResultSet等)。
5、scala和ipython多行编辑
scala中是:paste
ipython中是
%% paste
最后使用
Ctr+d退出
6、区分<-,=>,->
<-用于for循环,符号∈的象形:
for (i <- 0 until 100)
=>用于匿名函数,也可用在import中定义别名:import javax.swing.{JFrame=>jf}
List(1,2,3).map(x=> x*x) ((i:Int)=>i*i)(5) // 25
->用于Map初始化
Map(1->"a",2->"b") // (1:"a",2:"b")
相关文章推荐
- [持续更新] 学习历程 迭代计划和小结
- Java 基础学习笔记(持续更新中)
- UNIX技术内幕学习笔记(持续更新中)
- 英语学习优秀资源整理--持续更新
- Oracle11G 系统参数学习(持续更新中)
- 应用框架的设计与实现学习手札系列(持续更新)
- jQuery学习总结之元素的相对定位和选择器----持续更新中
- Linux内核“问题门”——学习问题、经验集锦(持续更新中……)
- Jquery学习网站 Jquery下载 Jquery 持续更新
- 学习Mobile开发的网站,持续更新中……
- ACE学习笔记--持续更新中
- Silverlight 最佳学习Blog (持续更新中...)
- 学习javascript对象创建方法(参照别人代码,持续更新)
- Qt学习重要知识点简记---控件使用篇(持续更新)
- myeclipse tomcat jsp servlet javabean的学习(持续更新)
- wxWidget学习笔记三:Tips(持续更新中)
- Java 学习资源【持续更新】
- ACE学习笔记--持续更新中
- Linux内核“问题门”——学习问题、经验集锦(持续更新中……)
- js学习总结--持续更新(2)