尊重原创,注重版权,转贴请注明原文地址:http://www.cnblogs.com/vincent-hv/p/3322966.html

 
1、配置程序使用资源:
System.setProperty("spark.executor.memary", "512m") 
 
2、创建自己的SparkContext对象:
val sc = new  SparkContext("master", "Job name", "$SPARK_HOME", "Job JARs")
3、创建RDDs
sc.parallelize(List(1, 2, 3))    // 将scala原生的集合转换成RDD
sc.textFile("directory/*.txt") // 将本地磁盘上的文本转换成RDD
sc.testFile("hdfs://namenode:port/path/file") // 将分布式文件系统上的文件转换成RDD
4、基本的RDD Transformations操作:
val nums = sc.parallelize(List(1, 2, 3))
val squares = nums.map(x => x * x) // {1, 4, 9}
val even = squares.filter(_ % 2 == 0) // {4}
nums.flatMap(x => 1 to x) // {1, 1, 2, 1, 2, 3}
5、基本的Actions操作:
val nums = sc.parallelize(List(1, 2, 3))
nums.collect() // Array(1, 2, 3)
nums.take(2) // Array(1, 2)
nums.count() // 3
nums.reduce(_ + _) // 6
nums.saveAsTextFile("hdfs://file.txt")
6、针对Key-Value对的作业:
val pair = (a, b)
pair._1 // a
pair._2 // b
 
7、一些Key-Value对的操作:
val pets = sc.parallelize(List(("cat", 1), ("dog", 1), ("cat", 2)))
pets.reduceByKey(_ + _) // {(cat, 3), (dog, 1)}
pets.groupByKey() // {(cat, Seq(1, 2)), (dog, 1)}
pets.sortByKey() // {(cat, 1), (cat, 2), (dog, 1)}
 
8、其他Key-Value的操作:
val visits = sc.parallelize(List(("index.html", "1.2.3.4"), ("about.html", "3.4.5.6"), ("index.html", 1.3.3.1)))
val pageNames = sc.parallelize(List(("index.html", "Home"), ("about.html", "About")))
visits.join(pageNames) // ("index.html", ("1.2.3.4", "Hmoe"))
// ("index.html", ("1.3.3.1", "Home"))
// ("about.html", ("3.4.5.6", "About"))
vlisits.cogroup(pageNames) // ("index.html", (Seq("1.2.3.4", 1.3.3.1), Seq("Home")))
// ("about.html", (Seq("3.4.5.6"), Seq("About")))
9、控制Reduce Tasks的数量:
所有的RDD组操作都可以选择设置第二个参数来控制tasks的数量
words.reduceByKey(_ + _, 5)
words.groupByKey(5)
visits.join(pageViews, 5)
当然,也可以通过设置spark.default.parallelism属性值来控制
 
10、使用本地变量:
在闭包中你使用任何外部变量都将自动的传递到集群:
val query = Console.readLine()
pages.filter(_.contains(query)).count()
一些注意事项:
  • Each task gets a new copy(updates aren`t sent bask)
  • 变量必须序列化
  • 不要使用一个对象的外部域
 
11、集群中有较大危害的示例:
12、其他RDD操作:
  • sample():确定样本子集
  • union():合并两个RDD
  • cartesian():交叉乘积
  • pipe():通过外部程序

【原】Spark 编程指南的更多相关文章

  1. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  2. SparkR(R on Spark)编程指南 含 dataframe操作 2.0

    SparkR(R on Spark)编程指南 Spark  2015-06-09 28155  1评论 下载为PDF    为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...

  3. SparkR(R on Spark)编程指南 含 dataframe操作

    SparkR(R on Spark)编程指南 Spark  2015-06-09 28155  1评论 下载为PDF    为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...

  4. Spark编程指南V1.4.0(翻译)

    Spark编程指南V1.4.0 ·        简单介绍 ·        接入Spark ·        Spark初始化 ·        使用Shell ·        在集群上部署代码 ...

  5. 转-Spark编程指南

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  6. Spark官方2 ---------Spark 编程指南(1.5.0)

    概述 在高层次上,每个Spark应用程序都由一个运行用户main方法的driver program组成,并在集群上执行各种 parallel operations.Spark提供的主要抽象是resil ...

  7. Spark编程指南分享

    转载自:https://www.2cto.com/kf/201604/497083.html 1.概述 在高层的角度上看,每一个Spark应用都有一个驱动程序(driver program).驱动程序 ...

  8. Spark编程指南

    1.在maven里面添加引用,spark和hdfs的客户端的. groupId = org.apache.spark artifactId = spark-core_2.9.3 version = 0 ...

  9. Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN

    Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...

随机推荐

  1. zip7压缩

    7-zip 解压 1.引入依赖文件 sevenzipjbinding.jar sevenzipjbinding-Allwindows.jar <!-- https://mvnrepository ...

  2. django富文本编辑器

    -------------------tinymce富文本编辑器1.下载安装 1.在网站pypi网站搜索并下载"django-tinymce-2.4.0" 2.解压:tar zxv ...

  3. keepalive之LVS-DR架构

    author:JevonWei 版权声明:原创作品 Keepalive实战之LVS-DR 实验目的:构建LVS-DR架构,为了达到LVS的高可用目的,故在LVS-DR的Director端做Keepal ...

  4. 在centos6上实现编译安装lamp和wordpress,并编译xcache

    author:JevonWei 版权声明:原创作品 软件环境: centos6.9 httpd-2.4.27.tar.bz2 apr-1.5.2.tar.bz2 apr-util-1.5.4.tar. ...

  5. Linux-ps命令(7)

    名称:ps(process status) 使用权限:所有使用者说明:显示瞬间进程 (process) 的动态 示例: 比如输入ps查看进程,如下图: 其中输出状态栏参数: PID 该 process ...

  6. Java中死锁的简单例子及其避免

    死锁:当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞.比如,线程1已经持有了A锁并想要获得B锁的同时,线程2持有B锁并尝试获取A锁,那么这两个线程将永远地等待下去. ...

  7. 201521123122 《java程序设计》第八周实验总结

    201521123122 <java程序设计>第八周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 List中指定元素的删除(题目4- ...

  8. 201521123087 《java程序设计》 第七周学习总结

    1. 本周学习总结 2. 书面作业 ArrayList代码分析1.1 解释ArrayList的contains源代码                                           ...

  9. 201521123062 《Java程序设计》第3周学习总结

    1.本周学习总结 二.书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pu ...

  10. 201521123045 《Java程序设计》第2周学习总结

    ---恢复内容开始--- #1. 本周学习总结 上课讲解了上次的实验题目,对其中题目的一些问题得到了解决.学会了java数组的使用,对如何使用码云上传代码有了更清晰的理解.pta还是有一些问题没有解决 ...