RDD基础实例

RDD(弹性分布式数据集)作为spark的核心概念,RDD其实就是一个不可变的分布式的元素集合

什么是弹性: 在任何实收都能进行重新计算,当保存RDD数据的一台机器挂了,spark还可以使用这种特性来重新计算出丢掉的分区,对用户也完全透明。

每个RDD都被分为多个分区,这些分区运行在集群中的不同节点

创建RDD的方式有多种,一是主要读取一个外部的数据集,二是在驱动器程序中的对象集合。

创建出RDD之后,支持两种类型的操作: transformation和action操作。转化操作由一个RDD生产一个新的RDD,但只会惰性计算这些RDD,action操作才是真正计算最终结果的。

spark的RDD会在每次对他们进行action操作时重新计算,如果想在多个action操作中重用同一个RDD,可以使用cache()或是RDD.persist()来将这个RDD缓存起来。我们也可以将数据缓存到不同的地方,比如,磁盘或是内存。如果所有操作都结束,则可以调用stop()操作结束。

eg 举例如下:
>>> val rdd = sc.parallelize(Seq(("hadoop",3), ("spark",2), ("hive",1), ("hbase",3), ("java",2)))
>>> val resRdd= rdd.filter(_._2 == 3)
>>> resRdd.persist()
>>> resRdd.count()
>>> resRdd.first()

大概的spark程序工作方式:

  1. 从外部数据集或驱动程序中创建出RDD.
  2. 使用filter(),flatMap()等transformation操作对RDD进行转化,定义新的RDD.
  3. 将重用的中间结果RDD进行cache()或是persist()操作(cache()和使用默认级别的persist()操作是相同意思的)。
  4. 使用action操作来触发一次并行计算。

http://spark.apachecn.org/docs/cn/2.2.0/sql-programming-guide.html
spark中文官网(学习spark最好的方式就是读官方文档)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值