Spark中的RDD依赖是什么?

2024-03-16

据我所知,有两种类型的依赖关系:窄和宽。但我不明白依赖性如何影响子RDD. Is 子RDD仅包含如何构建新 RDD 块的信息的元数据父RDD? Or 子RDD是自给自足的数据集,其创建自父RDD?


是的,子RDD是描述如何从父RDD计算RDD的元数据。

考虑org/apache/spark/rdd/MappedRDD.scala https://github.com/apache/spark/blob/v1.2.0/core/src/main/scala/org/apache/spark/rdd/MappedRDD.scala例如:

private[spark]
class MappedRDD[U: ClassTag, T: ClassTag](prev: RDD[T], f: T => U)
  extends RDD[U](prev) {

  override def getPartitions: Array[Partition] = firstParent[T].partitions

  override def compute(split: Partition, context: TaskContext) =
    firstParent[T].iterator(split, context).map(f)
}

当你说rdd2 = rdd1.map(...), rdd2将会是这样一个MappedRDD. compute仅稍后执行,例如当您调用时rdd2.collect.

RDD 始终是这样的元数据,即使它没有父级(例如sc.textFile(...))。 RDD 存储在节点上的唯一情况是,如果您将其标记为缓存rdd.cache,然后对其进行计算。

另一种类似的情况是调用rdd.checkpoint。该函数将 RDD 标记为检查点。下次计算时,它会被写入磁盘,稍后访问 RDD 会导致从磁盘读取它,而不是重新计算。

和...之间的不同cache and checkpoint是缓存的 RDD 仍然保留其依赖关系。缓存的数据在内存压力下可能会被丢弃,并且可能需要部分或全部重新计算。对于带有检查点的 RDD 来说,这种情况不会发生,因此依赖项会被丢弃。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark中的RDD依赖是什么? 的相关文章

  • Spark Workers 上缺少 SLF4J 记录器

    我正在尝试通过以下方式运行工作spark submit 此作业导致的错误是 Exception in thread main java lang NoClassDefFoundError org slf4j Logger at java l
  • 在地图类型中创建 DataFrame 分组列

    My 数据框具有以下结构 df spark createDataFrame B a 10 B b 20 C c 30 Brand Type Amount df show Brand Type Amount B a 10 B b 20 C c
  • 无法启动 Spark-Shell

    我使用的是 Spark 1 4 1 我可以毫无问题地使用spark submit 但当我跑的时候 spark bin spark shell 我收到以下错误 我已经配置了SPARK HOME and JAVA HOME 不过 Spark 1
  • Spark如何选择节点来运行执行器?(spark on YARN)

    Spark如何选择节点来运行执行器 spark on YARN 我们使用 Spark on Yarn 模式 集群有 120 个节点 昨天 一个 Spark 作业创建了 200 个执行程序 而节点 1 上有 11 个执行程序 Node2上有1
  • Spark-shell 使用不同版本的 Scala。使用 homebrew 安装 scala 和 apache-spark

    我使用 homebrew 安装了 scala 和 apache spark 它安装了 scala 2 12 4 和 apache spark 2 2 0 但是 如果您结帐spark shell version它使用不同的 scala 版本
  • 将类型安全配置conf文件传递给DataProcSparkOperator

    我正在使用 Google dataproc 提交 Spark 作业 并使用 google Cloud Composer 来安排它们 不幸的是 我面临着困难 我依靠 conf文件 类型安全配置文件 将参数传递给我的 Spark 作业 我正在将
  • Spark、pyspark中从TF-IDF到LDA聚类

    我正在尝试对存储在格式键 listofwords 中的推文进行聚类 我的第一步是使用 dataframe 提取单词列表的 TF IDF 值 dbURL hdfs pathtodir file sc textFile dbURL Define
  • 当我们在 Apache Spark 中使用时,无法找到 Set([TOPIC NAME,0])) 的领导者

    我们使用 Apache Spark 1 5 1 和 kafka 2 10 0 8 2 1 以及 Kafka DirectStream API 通过 Spark 从 Kafka 获取数据 我们使用以下设置在 Kafka 中创建了主题 复制因子
  • 将 Apache Zeppelin 连接到 Hive

    我尝试将我的 apache zeppelin 与我的 hive 元存储连接起来 我使用 zeppelin 0 7 3 所以没有 hive 解释器 只有 jdbc 我已将 hive site xml 复制到 zeppelin conf 文件夹
  • 为什么我不需要在 Databricks 中创建 SparkSession?

    为什么我不需要在 Databricks 中创建 SparkSession 集群设置的时候会自动创建一个SparkSession吗 还是其他人帮我做的 这仅在笔记本中完成 以简化用户的工作并避免他们指定不同的参数 其中许多参数不会产生任何效果
  • 创建涉及 ArrayType 的 Pyspark 架构

    我正在尝试为我的新 DataFrame 创建一个架构 并尝试了括号和关键字的各种组合 但无法弄清楚如何完成这项工作 我目前的尝试 from pyspark sql types import schema StructType StructF
  • 如何在每行中添加行号?

    假设这些是我的数据 Maps and Reduces are two phases of solving a query in HDFS Map is responsible to read data from input location
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts
  • Spark Dataframe 中的分析

    在这个问题中 我们有两个经理 M1 和 M2 在经理 M1 的团队中有两个员工 e1 和 e2 在 M2 的团队中有两个员工 e4 和 e5 以下是经理和员工的层次结构 1 M1 a e1 b e2 2 M2 a e4 b e5 我们有以下
  • Spark Dataframe/Parquet 中的枚举等效项

    我有一个包含数亿行的表 我想将其存储在 Spark 的数据帧中并作为 parquet 文件持久保存到磁盘 我的 Parquet 文件的大小现在超过 2TB 我想确保我已经对此进行了优化 这些列中很大一部分是字符串值 它们可能很长 但值通常也
  • Pyspark - 一次聚合数据帧的所有列[重复]

    这个问题在这里已经有答案了 我想将数据框分组到单个列上 然后对所有列应用聚合函数 例如 我有一个包含 10 列的 df 我希望对第一列 1 进行分组 然后对所有剩余列 均为数字 应用聚合函数 sum 与此等效的 R 是 summarise
  • 如何找到两个数据帧之间的精确和非精确匹配?

    我有两个数据框 df1 id amount fee 1 10 00 5 0 2 20 0 3 0 3 90 130 0 4 120 0 35 0 df2 exId exAmount exFee 1 10 00 5 0 2 20 0 3 0
  • 具有定期更新的静态数据集的结构化流

    将流媒体与静态数据集合并是结构化流媒体的一个重要功能 但在每个批次中 数据集都会从数据源刷新 由于这些源并不总是那么动态 因此在指定的时间段 或批次数 内缓存静态数据集会提高性能 在指定的时间段 批次数之后 将从源重新加载数据集 否则从缓存
  • 如何强制 Spark 执行代码?

    我如何强制 Spark 执行对 map 的调用 即使它认为由于其惰性求值而不需要执行它 我试过把cache 与地图调用 但这仍然没有解决问题 我的地图方法实际上将结果上传到 HDFS 所以 它并非无用 但 Spark 认为它是无用的 简短回
  • Spark - 构建时出现 scala 初始化错误

    我正在尝试在我的 scala 应用程序中使用 Spark 这是我正在使用的 Spark 依赖项

随机推荐