pySpark工具学习2-弹性分布式数据集(RDD Resilient Distributed Dataset)

作者 : 开心源码 本文共747个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共195人阅读

弹性分布式数据集(RDD Resilient Distributed Dataset)是不可变JVM对象的分布式集合,允许您非常快速地执行计算,并且它们是Apache Spark的核心。

顾名思义,数据集是分布式的;它根据少量密钥分成块并分发到执行程序节点。这样做可以非常快速地对这些数据集运行计算。RDD跟踪(日志)应用于每个块的所有转换,以加快计算速度,并在出现问题并且丢失部分数据时提供回退;在这种情况下,RDD可以重新计算数据。这是防止数据丢失的另一道防线,是数据复制的补充。

本章内容:

  • RDD的内部工作
  • 创立RDD
  • 全局与本地范围
  • 转换
  • 操作

RDD的内部工作方式

RDD并行运行。这是在Spark中工作的最大优势:每个转换都是并行执行的,以便大幅提高速度。

对数据集的转换是惰性的。这意味着只有在调用数据集上的操作时才会执行任何转换。这有助于Spark优化执行。例如,考虑以下非常常见的步骤,分析师通常会这样做以熟习数据集:

1.计算某列中不同值的出现次数。
2.选择以A开头的值。
3.将结果输出到屏幕上。

首先使用.map(lambda v: (v, 1))方法映射A的值,而后选择那些以’A’开头的记录(使用.filter(lambda val: val.startswith(‘A’)))。假如我们调用.reduceByKey(operator.add)方法,它将减少数据集并增加(在此示例中,计算)每个键的出现次数。所有这些步骤都会转换数据集。

而后调用.collect()方法来执行这些步骤。此步骤是对我们的数据集的操作 – 它最终计算数据集的不同元素。实际上,该操作可能会颠倒转换的顺序并在映射之前首先过滤数据,从而将较小的数据集传递给reducer。

假如您还不理解这些命令,请不要担心 – 我们将在本章后面详细解释它们。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » pySpark工具学习2-弹性分布式数据集(RDD Resilient Distributed Dataset)

发表回复