RDD中操作分为两个部分:转换(transformation)和行动(action) 转换:将RDD转换成一个新的RDD 行动:对一个RDD进行求值或者输出 RDD的所有转换操作都是懒执行的,只有当执行action操作时spark才会真的去执行
大魔王泛泛
2020-02-22
创建RDD有三种方式: 1、可以从一个Scala集合里面创建: sc.parallelize(data):把data这个数据并行化分片到节点 sc.makeRDD(data):把data这个数据并行化分片到节点,它的实现就是parallelize sc.makeRDD(data[(T,seq)]):这种方式可以指定RDD的存放位置 2、根据外部数据源来创建,如sc
大魔王泛泛
2020-02-22
RDD(Resilient Distributed Dataset):弹性分布式数据集 它有几种特性 : 1. RDD有不可变性 2. RDD是可分区的 3. RDD是弹性的: 弹性表现在 存储的灵活性、可容错性、 分层计算、可调整数据的分布情况
大魔王泛泛
2020-02-22
Spark诞生并不是为了替代Hadoop,而是替换Hadoop框架的某些计算框架(MR)和查询引擎(Hive) Spark的核心是一种新的大数据内存计算框架,是基于Hadoop的存储(HDFS)与资源管理器(YARN)之上的计算框架
大魔王泛泛
2020-02-22
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个master节点管理下的各个salve节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是”任务的分解与结果的汇总”。
大魔王泛泛
2020-02-22
将原来接收两个参数的一个函数转换成2个 这就是颗粒化操作 def sum(a: Int, b: Int) = a b println(sum(2,3)) def sum1(a: Int)(b: Int) = a b println(sum1(2)(3))
大魔王泛泛
2020-02-22
1. 基本数据类型 模式匹配 2. Array 模式匹配 3. List 模式匹配 4. case class 模式匹配 5. Some
大魔王泛泛
2020-02-22
在java中switch关键字 对一个值进行判断 根据条件进行不同的处理 在scala中模式匹配也是参照这种模式得来的 不过它要比java中的switch要强大的多
大魔王泛泛
2020-02-22
train 相当于定义了一个接口 接口子类中必须重写 train cart { def cat(x: String): Unit = { } def dot(age: Int): Unit = { } }
大魔王泛泛
2020-02-21
1. 实例化的时候可以不用new创建实例 2. 自动创建伴生对象并实现apply方法,这样创建对象时不用写new,因为只要写上类名就会自动调用它的构造方法 3.默认实现了hashCode、copy和equals方法 4. case class构造函数的参数是public级别的,我们可以直接访问; 5. 模式匹配用
大魔王泛泛
2020-02-21
object ApplyApp{ def main(args: Array[String]): Unit = { for(i <- 1 to 10){ ApplyTest.incre print(ApplyTest.count) } } } object ApplyTest{ var count = 0 def incre = { count = count 1 } } 结果是
大魔王泛泛
2020-02-21
class ApplyTest{ } object ApplyTest{ } class ApplyTest 是 object ApplyTest 的伴生类 object ApplyTest 是 class ApplyTest 的伴生对象 伴生类和伴生对象是相对而言的
大魔王泛泛
2020-02-21
首先需要了解的一点是,在scala中,主构造器并不是以this方法定义,而是与类定义交织在一起的 主构造器的参数直接放在类名之后,若不写则自动定义为空参: class Person(val name:String, val age:Int) { // 主构造器 def this(name:String, age:Int){// 附属构造器 //附属构造器的第一行代码必须要调用主构造器或者
大魔王泛泛
2020-02-21
scala 中没有 static 关键字,所以 对于一个class来说,所有的方法和成员变量在实例被 new 出来之前都是无法访问的 而scala 的object 中所有成员变量和方法默认都是 static 的 所以可以直接访问main方法
大魔王泛泛
2020-02-21
Scala中使用关键字lazy来定义惰性变量,实现延迟加载(懒加载) 注意:用lazy修飾的变量只能是不可变变量,并且只有在调用惰性变量时,才会去实例化这个变量
大魔王泛泛
2020-02-21
Hive的元数据需要不断的更新 因此Hive的元数据一般存储在Mysql中 HDFS系统虽然也可以进行更新操作 但更多的还是读操作
大魔王泛泛
2020-02-20