我正在学习 Apache Spark 并尝试获取 RDD 的谱系图。
但我找不到特定谱系何时创建?
另外,哪里可以找到 RDD 的谱系?
RDD谱系是每次应用转换时创建和扩展的分布式计算的逻辑执行计划any RDD.
请注意执行操作后发生的“逻辑”部分而不是“物理”部分。
Quoting 掌握 Apache Spark 2gitbook:
RDD谱系 (aka RDD 运算符图 or RDD依赖图) 是一个 RDD 的所有父 RDD 的图。它是通过对 RDD 应用转换而构建的,并创建逻辑执行计划。
因此,RDD 谱系图是调用操作后需要执行哪些转换的图。
任何 RDD 都有 RDD 谱系,即使这意味着 RDD 谱系只是单个节点,即 RDD 本身。这是因为 RDD 可能是也可能不是一系列转换的结果(并且没有转换是“零效应”转换:))
您可以使用以下命令查看 RDD 的 RDD 谱系:RDD.to调试字符串:
到调试字符串:字符串该 RDD 的描述及其用于调试的递归依赖项。
val nums = sc.parallelize(0 to 9)
scala> nums.toDebugString
res0: String = (8) ParallelCollectionRDD[0] at parallelize at <console>:24 []
val doubles = nums.map(_ * 2)
scala> doubles.toDebugString
res1: String =
(8) MapPartitionsRDD[1] at map at <console>:25 []
| ParallelCollectionRDD[0] at parallelize at <console>:24 []
val groups = doubles.groupBy(_ < 10)
scala> groups.toDebugString
res2: String =
(8) ShuffledRDD[3] at groupBy at <console>:25 []
+-(8) MapPartitionsRDD[2] at groupBy at <console>:25 []
| MapPartitionsRDD[1] at map at <console>:25 []
| ParallelCollectionRDD[0] at parallelize at <console>:24 []
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)