gpt4 book ai didi

apache-spark - Spark中有 "Explain RDD"吗

转载 作者:行者123 更新时间:2023-12-03 07:24:51 24 4
gpt4 key购买 nike

特别是,如果我说

rdd3 = rdd1.join(rdd2)

然后当我调用rdd3.collect时,取决于Partitioner使用时,要么数据在节点分区之间移动,要么连接在每个分区上本地完成(或者,据我所知,完全是其他东西)。这取决于 RDD 论文所说的“窄”和“宽”依赖关系,但谁知道优化器在实践中有多好。

无论如何,我可以从跟踪输出中收集实际发生的事情,但最好调用 rdd3.explain .

这样的事情存在吗?

最佳答案

我认为toDebugString会满足你的好奇心。

scala> val data = sc.parallelize(List((1,2)))
data: org.apache.spark.rdd.RDD[(Int, Int)] = ParallelCollectionRDD[8] at parallelize at <console>:21

scala> val joinedData = data join data
joinedData: org.apache.spark.rdd.RDD[(Int, (Int, Int))] = MapPartitionsRDD[11] at join at <console>:23

scala> joinedData.toDebugString
res4: String =
(8) MapPartitionsRDD[11] at join at <console>:23 []
| MapPartitionsRDD[10] at join at <console>:23 []
| CoGroupedRDD[9] at join at <console>:23 []
+-(8) ParallelCollectionRDD[8] at parallelize at <console>:21 []
+-(8) ParallelCollectionRDD[8] at parallelize at <console>:21 []

每个缩进都是一个阶段,因此应该作为两个阶段运行。

此外,优化器相当不错,但是如果您使用 1.3+ 作为优化器,我建议使用 DataFrames 在许多情况下会更好:)

关于apache-spark - Spark中有 "Explain RDD"吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com