分享

关于Spark RDD你应该知道的事情

 新用户8719ag3P 2021-12-24

  RDD的介绍,需求和功能

  关于Spark RDD你应该知道的事情

  什么是RDD?

  弹性分布式数据集是Spark API的核心元素。 RDD是只读的分区记录集合。 它们是分布式内存抽象,使程序员可以以容错的方式在大型群集上执行内存中计算。

  弹性:

  作为不变且容错的RDD能够从损失中恢复。

  分布式:

  数据在逻辑上进行了分区,并在整个群集中分布。

  数据集:

  它保存可以执行不同操作的数据。

  编译后,Spark的高级结构化API(如数据框架或数据集)归结为RDD。 由于记录只是程序员选择的Java,Scala或Python对象,因此RDD赋予了程序员完全的控制权。 我们可以选择任何格式将所需的任何内容存储在这些对象中。

  RDD使程序员可以将中间结果显式保留在内存中,控制其分区以优化数据存储,并提供两种类型的操作以分布式方式处理数据。 转变与行动。

  转换会根据先前的转换构造一个新的RDD,并懒惰地评估例如 地图,过滤器,加入。

  动作是将值返回给应用程序或将数据导出到存储系统并急切评估例如 计数,收集,保存。

  为什么我们需要RDD?

  有时候,高级API不能提供解决我们所面临问题的功能。 诸如MapReduce之类的框架缺少用于利用分布式内存的抽象。 RDD受到当前计算框架无法有效处理的两种应用程序的激励:迭代算法和交互式数据挖掘工具,其中将数据保留在内存中可以极大地提高性能。 RDD非常适合许多并行应用程序,因为这些应用程序自然会将相同的操作应用于多个数据项。 RDD使广泛的应用程序中的数据有效重用。

  RDD的功能:不可变的

  一旦创建,RDD就永远不会改变。 不变性降低了复杂性。 同时具有不变的集合使得Spark能够以直接的方式提供重要的容错保证。不变的数据可以安全地在多个进程和多个线程之间共

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多