我是 pyspark 的新手,正在尝试了解 toDebugstring() 的确切用法。您能从下面的代码片段中解释一下吗?
>>> a = sc.parallelize([1,2,3]).distinct()
>>> print a.toDebugString()
(8) PythonRDD[27] at RDD at PythonRDD.scala:44 [Serialized 1x Replicated]
| MappedRDD[26] at values at NativeMethodAccessorImpl.java:-2 [Serialized 1x Replicated]
| ShuffledRDD[25] at partitionBy at NativeMethodAccessorImpl.java:-2 [Serialized 1x Replicated]
+-(8) PairwiseRDD[24] at distinct at <stdin>:1 [Serialized 1x Replicated]
| PythonRDD[23] at distinct at <stdin>:1 [Serialized 1x Replicated]
| ParallelCollectionRDD[21] at parallelize at PythonRDD.scala:358 [Serialized 1x Replicated]
Run Code Online (Sandbox Code Playgroud)
小智 3
在 Spark 中,RDD 中的依赖关系以图表的形式记录。简而言之,每一步都是血统的一部分。通过调用 toDebugString 方法,您本质上是要求显示此谱系图(也称为发生的每个单独步骤的链,即创建的 RDD 类型和用于创建它的方法)。有些是您显式执行的转换,而另一些则不是(例如,谱系图的最底层步骤是您吞没的 RDD 的真实类型,但在其上方是内部机制创建的 RDD,用于将输入 RDD 中的对象转换为Java 类型对象)
打印语句的结果显示了从创建 ParallelCollectionRDD 开始自下而上的每一步。缩进的每次变化都是洗牌边界的指示,即洗牌操作的发生。您可以从谱系图中阅读更多内容以更好地理解。
| 归档时间: |
|
| 查看次数: |
3747 次 |
| 最近记录: |