当前位置: 首页 > 知识库问答 >
问题:

spark可以跨作业使用持久化的rdd吗?

贲俊才
2023-03-14

我如何判断RDD[0]、RDD[1]和RDD[2]是重新计算的还是仅仅脱水的?

总的来说,通过查看工作历史记录,你如何判断rdd是重新计算的还是仅仅脱水的?

共有1个答案

阎智
2023-03-14

生成持久化的RDDs上游(如0和1)和持久化的RDDs(2)所必需的计算将不进行。为了测试它,在保存之前和保存之后对RDD2做一些简单的计算,并注意时间上的差异。

Spark持久性文档

Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当持久化RDD时,每个节点将其计算的任何分区存储在内存中,并在该数据集(或从该数据集派生的数据集)上的其他操作中重用它们。这使得将来的操作可以快得多(通常超过10倍)。缓存是迭代算法和快速交互使用的关键工具。

 类似资料:
  • Spark通过在操作中将其持久保存在内存中,提供了一种处理数据集的便捷方式。在持久化RDD的同时,每个节点都存储它在内存中计算的任何分区。也可以在该数据集的其他任务中重用它们。 我们可以使用或方法来标记要保留的RDD。Spark的缓存是容错的。在任何情况下,如果RDD的分区丢失,它将使用最初创建它的转换自动重新计算。 存在可用于存储持久RDD的不同存储级别。通过将对象(Scala,Java,Pyt

  • Spark 有一个最重要的功能是在内存中_持久化_ (或 缓存)一个数据集。

  • Spark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中。当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些 数据可以被这个集合(以及这个集合衍生的其他集合)的动作(action)重复利用。这个能力使后续的动作速度更快(通常快10倍以上)。对应迭代算法和快速的交互使用来说,缓存是一个关键的工具。 你能通过persi

  • 问题内容: 我对Java Quartz不太熟悉,我们只是使用了每天安排的测试工作。对于我们的Struts2 Web应用程序,我们希望运行一些计划在一天中不同时间的日常工作。作业应处于持久状态,以便即使由于服务器关闭/应用程序失败而导致作业失败,也应在服务器启动后稍后重新执行。我还可以将作业的状态/结果存储在DB中,以便监视作业。任何的意见都将会有帮助。 - 谢谢 问题答案: 无论您提到什么,都可以

  • 18:02:55,271错误UTILS:91-中止任务java.lang.nullpointerException在org.apache.spark.sql.catalyst.expressions.generatedClass$GeneratedIterator.agg_doAggregateWithKeys$(未知源)在org.apache.spark.sql.catalyst.express

  • 当我运行如下代码时: 观察Yarn中的阶段,我注意到Spark进行了两次DAG计算--一次是用于实体化RDD并缓存它的DISTINCT+计数,然后是完全第二次用于创建检查点副本。 我已经创建了一个Apache Spark Jira票证,以使其成为一个特性请求:https://issues.Apache.org/Jira/browse/Spark-8666