初识Pyspark 1

来源:互联网 发布:ssd nvme ubuntu 分区 编辑:程序博客网 时间:2024/04/30 04:31
   最近在研究python,公司的业务系统中心也慢慢的从Oracle转到Hadoop上,看到公司其它java开发人员spark的玩的飞起,很是羡慕。正好Spark也有python版本,正好研究研究下pyspark,以下是官方文档链接。

http://spark.apache.org/docs/latest/api/python/pyspark.html#pyspark.RDD。

   学习Spark, 首先还是得知道一些它的基本概念。下面的一些名字解释一些是官网译过来的,另一些是网上找的。   RDD - resillient distributed dataset 弹性分布式数据集。A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, partitioned collection of elements that can be operated on in parallel.翻译过来的意思就是RDD代表一个不可变的,分区集合的元素可以在并行操作,Spark最基础的抽象。这个RDD,我理解的就是类似Oracle存储过程中的经常用到的临时表,或者说中间表。用存储过程实现较为复杂的的逻辑的时候,经常会建临时表(中间表)。然后在基于这临时表(中间表)在得出各种结果。   Operation - 作用于 RDD 的各种操作分为transformation和action.RDDs support two types of operations: transformations, which create a new dataset from an existing one, and actions, which return a value to the driver program after running a computation on the dataset.继续用Oacle里面的存储过程去理解,transformations就好像是一个一个的中间表结构(RDD是数据),而Action就是各个SQL语句。transformations是lazy的,它建好后不会立马就有数据,只有当 an action requires a result to be returned的时候才会有有数据,就像运行SQL语句后,表里面才会有数据。   Job - 作业,一个 JOB 包含多个 RDD 及作用于相应 RDD 上的各种 operation,这个不需要多做解释了。   Stage - 一个作业分为多个阶段。   Partition - 数据分区, 一个 RDD 中的数据可以分成多个不同的区。   DAG - Directed Acycle graph, 有向无环图,反应 RDD 之间的依赖关系。   Narrow dependency - 窄依赖, 子RDD 依赖于 父RDD 中固定的data partition。   Wide Dependency - 宽依赖, 子RDD 对 父RDD 中的所有data partition都有依赖。   Caching Managenment - 缓存管理,对RDD的中间计算结果进行缓存管理以加快整体的处理速度。   先了解了解基本概念,
0 0
原创粉丝点击