尊重原创,注重版权,转贴请注明原文地址: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. .NET技术基础总结 ----第一章

    . 一..NET定义 很多人常说我是做.NET开发的,但是,NET到底是什么呢?是一个开发工具?还是一个平台?或者是一个软件环境? 其实,我觉得吧,他是一种概念.一种构想吧.微软的产品发布会上,主持人 ...

  2. Http和Socket详解

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp59   这不是同一层的协议 socket是一个针对TCP和UDP编程的借 ...

  3. CGLIB 动态代理的实现

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92  JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类 ...

  4. 第4阶段——制作根文件系统之分析init进程(2)

    本节目标: (1) 了解busybox(init进程和命令都放在busybox中) (2) 创建SI工程,分析busybox源码来知道init进程做了哪些事情 (3)  分析busybox中init进 ...

  5. Jenkins关于tomcat地址和端口映射的配置

    <?xml version='1.0' encoding='utf-8'?><!-- Licensed to the Apache Software Foundation (ASF) ...

  6. 我来给.Net设计一款HttpClient

    1前言 时间飞快,转眼半年,碌碌无为,眼下就要三十而立,回想三年前的今天,我将NetworkSocket库开放到github,一直在更新与学习,不求有这个库能有多好,只求自己在过程能成长,将领悟到一些 ...

  7. 团队作业8——第二次项目冲刺(Beta阶段)Day5--5.23

    1.提供当天站立式会议照片一张 2.会议内容 讨论已完成的功能 对于界面,谈谈各自的看法 商定测试计划 用户需求进一步调研 3.工作安排 队员 今日任务 明日任务 贡献比 林燕 测试运行效果 根据测试 ...

  8. 201521123102 《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 在实验中,Sc ...

  9. 201521123037 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 接口: 接口简而言之是方法声明和常量值的集合,接口中所有的方法默认为public ...

  10. 201521123071 《JAVA程序设计》第九周学习总结

    第九周-异常 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 此处仅部分知识点归纳 2. 书面作业 1. 常用异常,题目5-1 1.1 截图你的提交结果(出现学号) ...