Python Spark RDD

Python Spark RDD

RDD(Resilient Distributed Dataset)弹性分布式数据集是Spark的核心,RDD能与其他系统兼容,可以导入外部存储系统的数据集,例如HDFS、HBase或其他Hadoop数据源。

RDD的三种基本运算

  • transformation“转换”运算:RDD执行“转换”运算会产生另外一个RDD;RDD具有lazy特性,“转换”运算并不会立刻执行,等到执行“动作”运算才实际执行
  • action“动作”运算:RDD执行“动作”运算后不会产生另一个RDD,而是产生数值,数组或写入文件系统;“动作”运算会立刻执行,并且连同之前的“转换”运算一起执行。
  • persistence“持久化”运算:对于会重复使用的RDD,可以将RDD“持久化”在内存中作为后续使用,以提高执行性能。

Lineage机制具备容错的特性

  • RDD本身具有Lineage机制,记录每个RDD与其父代RDD之间的关联,还会记录通过什么操作才由父代RDD得到该RDD信息。
  • RDD本身的immutable(不变性),加上Lineage机制,使得Spark具备容错的特性。如果某节点的机器出现故障,那么存储于该节点的RDD损毁后就会重新执行一连串“转换”命令,产生新的输出数据,以避免因为特定节点的故障而造成整个系统无法运行的问题。

基于IPython Notebook 进行基本的Spark RDD运算

首先,终端切换ipynotebook工作目录

cd ~/pythonwork/ipynotebook

运行IPython Notebook 使用Spark

PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark

打开IPython Notebook后

1、创建intRDD

intRDD = sc.parallelize([4,1,2,5,5,6,8])

上述命令使用parallelize方法输入一个List的参数的方式定义intRDD,是一个“转换”运算,不会立即执行

2、intRDD转换为List

intRDD.collect()

上述命令,intRDD执行collect()方法之后会转换为List,是一个“动作”运算,会立即执行。
执行结果
这里写图片描述

3、创建stringRDD并转换

stringRDD=sc.parallelize([&
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值