SPARK学习笔记
2018-01-24 09:48
197 查看
1. 安装SPARK,不再赘述
2. shell操作
% spark-shell Scala> val lines = sc.textFile("/root/spark_test")--加载文件
关于RDD:
弹性分布式数据集(Resilient Distributed Dataset,简称RDD)
RDD是SPARK最核心的概念,他是在集群中跨等多个机器分区存储的一个只读的对象集合.在典型的Spark程序中,首先要加载一个或多个RDD,它们作为输入通过一系列转换得到一组目标RDD,然后对这些目标RDD执行一个动作,例如计算出结果或者写入持久存储器.
弹性的意思是:Spark可以通过重新安排计算来自动重建丢失的分区.
加载RDD或执行转换并不会立即出发任何数据处理操作,只不过是创建了一个计算的计划.只有当对RDD进行某个动作(比如foreach()),才会触发真正的计算.
以上抄自Hadoop权威指南,感谢人类进步的阶梯
val lines = sc.textFile("/root/user/input/sample.txt") val records = lines.map(_.split("\t")) val filtered = records.filter(rec => rec(1) != "9999" && rec(2).matches("[01459]")) val tuples = filtered.map(rec => (rec(0).toInt, rec(1).toInt)) val maxTemps = tuples.reduceByKey((a,b) => Math.max(a,b)) maxTemps.foreach(println(_)) val minTemps = tuples.foldByKey(0)((a,b) => Math.min(a,b)) minTemps.foreach(println(_)) tuples.reduceByKey((a,b) => Math.max(a,b)).foreach(println(_))
共享变量
val lookup = Map(1 -> "a", 2 -> "e", 3 -> "i") val result = sc.parallelize(Array(2, 1, 3)).map(lookup(_)) assert(result.collect().toSet === Set("a", "e", "i")) val lookup = sc.broadcast(Map(1 -> "a", 2 -> "e", 3 -> "i")) val result = sc.parallelize(Array(2, 1, 3)).map(lookup.value(_)) assert(result.collect().toSet === Set("a", "e", "i"))
累加器
val count: Accumulator[Int] = sc.accumulator(0) val result = sc.parallelize(Array(1, 2, 3)) .map(i => {count += 1; i}) .reduce((x, y) => x + y) assert(count.value === 3) assert(result === 6)
相关文章推荐
- spark-streaming学习笔记总结
- Spark2.x学习笔记:1、Spark2.2快速入门(本地模式)
- Spark学习笔记(4)Spark Streaming的Exactly-One的事务处理
- Spark学习笔记(11)源码解读之Driver中的ReceiverTracker架构
- Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析之Scala学习笔记-50
- Spark 2.0 -SQL 学习笔记
- Scala多重界定代码实战及其在Spark中的应用源码解析之Scala学习笔记-38
- Spark学习笔记——Spark上数据的获取、处理和准备
- Spark学习笔记 --- SparkStreaming 实现对 TCP 数据源处理
- Spark学习笔记(28)深入理解Spark 2.x中的Structured Streaming
- Spark学习笔记-如何运行wordcount(使用jar包)
- spark学习笔记:spark独立集群模式配置及FIFO调度
- 大数据学习笔记(六)-Spark环境配置
- Spark学习笔记之-Spark on yarn(External Shuffle Service)
- Spark学习笔记--Spark基础知识
- Spark学习笔记--Linux安装Spark集群详解
- 《machine learning with spark》学习笔记--推荐模型
- Spark学习笔记
- Spark学习笔记:aggregateMessages
- 第60讲:Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析学习笔记