pyspark中to toDebugstring()的确切用法

pyspark中to toDebugstring()的确切用法,pyspark,rdd,Pyspark,Rdd,我是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]

我是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]
a=sc.parallelize([1,2,3]).distinct() >>>打印a.toDebugString() (8) PythonRDD.scala:44[序列化1x复制] |NativeMethodAccessorImpl.java处的值处的MappedRDD[26]:-2[序列化1x复制] |NativeMethodAccessorImpl.java分区中的Shuffledd[25]:-2[序列化1x复制] +-(8) 不同位置处的成对ISERDD[24]:1[序列化1x复制] |PythonRDD[23]位于不同的位置:1[序列化1x复制] |PythonRDD.scala:358[序列化1x复制]
在spark中,RDD中的依赖项以图形形式登录。简单地说,每一步都是血统的一部分。通过调用toDebugString方法,本质上就是要求显示这个沿袭图(即发生的每个单独步骤的链,即创建的RDD类型和用于创建它的方法)。一些是您显式执行的转换,而另一些不是(例如,沿袭图的最底层步骤是您所吞没的RDD的真实类型,但其上方是由内部机制生成的RDD,用于将输入RDD中的对象转换为Java类型的对象)

打印语句的结果显示了从创建ParallelCollectionRDD开始的自下而上的每个步骤。缩进中的每一个变化都表示混洗边界,即出现混洗操作。为了更好地理解,您可以从谱系图中阅读更多内容