Rdd基本操作(学习笔记)

本文讲述了SparkRDD的基础操作,包括概念、特点,Python转换方法以及控制分区的示例。
摘要由CSDN通过智能技术生成

Rdd基本操作

Rdd介绍

  • 弹性分布式数据集合, 是spark最基本的数据类型, 存储在内存中
  • 弹性 -> 分区(将数据拆分成多份), 类似于HDFS的分块
  • 分布式 -> 使用多台服务器的计算资源
  • 数据集合 -> 规定了spark中数据的形式, 类似于python中的列表类型 [1,2,3,4]

Rdd特点

  • 分区
    • 将rdd的数据拆分成多份
    • 分区数等于task线程数
  • 只读
    • rdd的数据只能读取, 不能修改, 不可变类型
  • 依赖
    • 相邻的rdd之间存在一个依赖关系, 因果关系
    • 新的rdd一定是由旧的rdd计算得到
  • 缓存
    • 将中间计算得到的rdd进行缓存操作
    • 保存在内存中或磁盘中, 临时持久化
    • 容错机制
    • 缓存rdd随着spark应用程序执行结束后自动清空
  • checkpoint
    • 将中间计算得到的rdd进行checkpoint操作
    • 保存在HDFS中, 永久持久化
    • 容错机制

python数据类型转换成Rdd数据

1:先导入spark模块

from pyspark import SparkContext

2:创建rdd对象


```python
​	sc=SparkContext()

3:创建python数据类型,如;

```python

​	str='abcde'

​	list1=[1,2,3]

​	set1={1,2,3}

​	tuple1=(1,)

​	dict1={'name':'xiuer'}

数据集合相当于是容器,所以数值类型和布尔类型,浮点数类型都不可以转换成rdd数据

字典默认打印出来的是key(键),所以如果要打印values的话就需要指定

创建rdd指定分区数

#第一部导入模块

from pyspark import SparkContext
sc=SparkContext()
#numSlices:分区数,不写的话默认是2
rdd1=sc.parallelize(c=[1,2,3],numSlices=)
res1=rdd.glom().collect()
res2=rdd.collect()
print(res1)
print(res2)

from pyspark import SparkContext
sc=SparkContext()
print(sc.defaultParallelism)
#minPartitions最小分区数
rdd2=sc.textFile('/data/words.txt',minPartitions=3)
res3=rdd2.glom().collect()
res4=rdd2.collect()
print(res3)
print(res4)

手动修改rdd分区数

from pyspark import SparkContext
sc=SparkContext()
rdd1=sc.parallelize([1,2,3,4,5,6,7,8],numSlices=3)
rdd2=rdd1.repartition(numPartitions=5)
print(rdd2.glom().collect())
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值