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
我正在尝试从 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
.