Spark 架构解析

Spark 工具包

Spark 工具包

Spark 架构

Spark应用程序由一个__驱动器进程(Drive Process)__和一组__执行器(Executors)__进程组成。
下图演示了__集群管理器(Cluster Manager)__如何控制物理机器并为Spark应用程序分配资源。
Spark 架构

SparkSession与支持Spark API编程语言的关系

大多数情况下,Spark在每种语言中都提供了一些核心“概念”,这些概念被转化成在集群上可以运行的Spark代码。如果仅使用结构化API,则所有语言都应该具有相似的性能特征。
Spark 多语言支持

分布式数据分析 VS 单机数据分析

Spark的DataFrame和Python、R DataFrame的区别在于,Python DataFrame和R DataFrame存在于一台机器上(有些例外情况),而不是多台机器上。
在这里插入图片描述

转换操作(Transformations)

Spark的核心数据结果在计算过程中是保持不变的,着意味着他们在创建之后无法更改。
具有窄依赖关系(narrow dependency)的转换操作(窄转换)是每个输入分区仅决定一个输出分区的转换。
窄依赖
具有宽依赖关系(wide dependency)的转换(或宽转换)是每个输入分区决定了多个输出分区。这种宽依赖关系的转换经常被成为__Shuffle__操作,他会在整个集群中执行互相交换分区数据的功能。
宽依赖

一个完整的例子

从CSV文件读取数据,创建一个DataFrame。如下,CSV文件被读取到一个DataFrame里后,又被转换为一个本地数组或行列表。
在这里插入图片描述
例如,DataFrame的读取、排序和收集:
在这里插入图片描述
举例,一个DataFrame转换的完整流程
在这里插入图片描述
第一步:读取数据。
第二步:分组。
第三步:指定聚合操作。
第四步:简单的重命名。
第五步:对数据进行排序。
倒数第二步:指定了一个限制(limit)。
最后一步是要执行的动作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值