ShuffledRDD['number']后面的数字代表什么?

What does the number after the ShuffledRDD['number'] indicates?

我正在尝试从 hdfs 路径读取文件路径并在其上进行一些转换,最后在其上应用一些自定义分区。

代码如下:

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path} 
val extensionPattern: String = ".*.csv"
val numPartitions = 96
val fs = FileSystem.get(new Configuration())
val rdd = fs
      .listStatus(new Path(path))
      .filter(x => x.getPath.toString.matches("^.*/" + extensionPattern + "$"))
      .map(x => x.getPath.toString)
      .toList
      .zipWithIndex
      .map(_.swap)
      .toDS
      .rdd.partitionBy(new ExactPartitioner(numPartitions))

每次我 运行 这个命令时,我都会看到 ShuffledRDD[] 值的不同值。它不断增加,但我无法理解它的目的是什么以及为什么需要它。它是否也影响我在这行代码之后所做的操作。

您可以看到笔记本单元格的输出如下:

图像中突出显示的数字不断变化。

根据RDD的toString definition,数字对应RDD对象的ID(格式字符串中的第3个参数):

override def toString: String = "%s%s[%d] at %s".format(
    Option(name).map(_ + " ").getOrElse(""), getClass.getSimpleName, id, getCreationSite)

该数字不应影响代码中的任何内容。每次执行操作时它都会不断增加,因为每次 运行 定义 val rdd.

的行都会创建一个新的 RDD