拼命三娘冲(20191124补)_Spark 编程模型

本文介绍了Spark的生态系统,包括Spark SQL、Spark Streaming、MLlib和GraphX,以及如何处理大数据问题。重点讲解了Pandas/numpy与pyspark的区别,以及Spark的弹性分布式数据集(RDD)的概念。RDD提供了多种转换和执行函数,如map、filter、reduceByKey和join等,并介绍了RDD的惰性计算特性。最后,提到了RDD的两种主要算子:转换和行动算子。
摘要由CSDN通过智能技术生成

1、 Spark的生态体系

以Spark为基础,有支持SQL语句的Spark SQL,有支持流计算的Spark Streaming,有支持机器学习的MLlib,还有支持图计算的GraphX。利用这些产品,Spark技术栈支撑起大数据分析、大数据机器学习等各种大数据应用场景

2、 Pandas/numpy 与pyspark

Pandas、nump在本质上是将数据一次性读入内存后再处理。因pc资源,尤其是内存等资源的限制,当数据量变大后,再用上述方法时,可能发生内存不足,或者剩余内存很少,导致无法处理,或者处理速度很慢的情况。hadoop和spark是主流的大数据平台,主流语言是Java和Scala,为应对python的快速发展,spark推出了python版:pyspark。pyspark可以在单机上使用,解决大数据问题。

3、 弹性分布式数据集(Resilient Distributed Dataset,RDD)

RDD上定义的函数分两种,一种是转换(transformation)函数,这种函数的返回值还是RDD;另一种是执行(action)函数,这种函数不再返回RDD。

RDD定义了很多转换操作函数,比如有计算map(func)、过滤filter(func)、合并数据集union(otherDataset)、根据Key聚合reduceByKey(func, [numPartitions])、连接数据集join(otherDataset,
[numPartitions])、分组groupByKey([numPartitions])等十几个函数。

RDD上的转换操作又分成两种,一种转换操作产生的RDD不会出现新的分片,比如map、filter等,也就是说一个RDD数据分片,经过map或者filter转换操作后,结果还在当前分片。物理上,Spark只有在产生新的RDD分片时候,才会真的生成一个RDD,Spark的这种特性也被称作惰性计算。另一种转换操作产生的RDD则会产生新的分片,比如reduceByKey,来自不同分片的相同Key必须聚合在一起进行操作,这样就会产生新的RDD分片。实际执行过程中,是否会产生新的RDD分片,并不是根据转换函数名就能判断出来。

RDD常用算子:

【两个算子】

①transfermation:
map、filter【过滤】、group by、distinct

②action: count, reduce, collect

Spark的transformations很懒,因为他们没有马上计算出结果,相反,他们只记得应用于基本数据集;action触发计算,将返回值数据写入外部存储。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值