spark学习之入门(一)

spark是一个快速且通用的集群计算平台。

spark特点

  • spark是通用的,设计容纳了其它分布式系统拥有的功能,批处理,迭代式计算,交互查询和流处理等。
  • spark是内存性的,扩充了mapReduce的计算模型

spark组件

  • sparkCore
  1. 包含spark的基本功能,包含任务调度,内存管理,容错机制等,内部定义了RDDs(弹性分布式数据集)
  2. 提供了很多API来创建和操作RDDs。为其它组件提供底层的服务。
  • spark sql 
  1. 是spark处理结构化数据的库,就像HIVE SQL一样,可以用来做报表统计
  • spark streaming
  1. 实时数据流处理组件,类似storm。用来从kafka接受数据做实时统计
  • Mlib
  1. 包含通用机器学习功能的包,包含分类,聚类,回归等,还包括模型评估和数据导入支持集群的拓展
  • Graphx
  1. 处理图的库,并进行图的并行计算继承了RDD API
  • cluster managers
  1. 集群管理

spark的安裝

spark使用Scala编写的运行在jvm上。

RDDs介绍

Resilient distributed datasets(弹性分布式数据集),并行的分布在整个集群中,RDDs是spark分发数据和计算的基础抽象类。

一个RDD是一个不可改变的分布式集合对象。spark中所有的对象都是通过RDDs的创建,转换,操作完成的。

一个RDD内部由许多partitions分片组成。每个分片包含一部分数据,partitions可在集群不同节点上计算。分片是spark并行处理的单元,spark顺序的,并行的处理分片

RDD的转换操作

map()接受函数,把函数应用到RDD的每一个元素。返回新RDD

filter()

flatMap()

RDD的Action操作

在Rdd上计算出来一个结果。把结果返回给driver program或保存在文件系统,count,save

reduce() 接受一个函数,作用在Rdd两个类型形同的元素上,返回新元素。可以实现累加,计数和其它聚集操作。

collect() 遍历整个rdd,向driver program返回rdd内容,需要单机内存能够容纳下

take(n) 返回rdd的n个元素(同时尝试访问最少的partitions)返回结果是无序的

top() 排序(根据rdd中数据的比较器)

foreach 计算rdd中的每个元素,但不返回到本地

combineByKey(): 最常用的基于key的聚合函数,返回的类型可以与输入的类型不一致

(createCombiner,mergeValue,mergeCombiners,partitioner)

遍历partition中的元素,元素的key要么之前见过要么不是。如果是新元素,使用我们提供的createCombiner函数,如果partition中存在key,就会使用mergeValue函数。合计每个partition的结果的时候使用mergeCombiners函数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值