Apache spark 如何在spark RDD中创建分区
假设我正在使用spark(scala)从HDFS读取一个文件。HDFS块大小为64 MB 假设HDFS文件的大小为130 MB 我想知道在基本RDD中创建了多少个分区Apache spark 如何在spark RDD中创建分区,apache-spark,Apache Spark,假设我正在使用spark(scala)从HDFS读取一个文件。HDFS块大小为64 MB 假设HDFS文件的大小为130 MB 我想知道在基本RDD中创建了多少个分区 scala> val distFile = sc.textFile("hdfs://user/cloudera/data.txt") 分区的数量是根据块大小决定的吗 在上述情况下,分区数为3?您可以运行并检查分区数 distFile.partitions.size 您可以运行并检查分区的数量 distFile.partit
scala> val distFile = sc.textFile("hdfs://user/cloudera/data.txt")
分区的数量是根据块大小决定的吗
在上述情况下,分区数为3?您可以运行并检查分区数 distFile.partitions.size
您可以运行并检查分区的数量 distFile.partitions.size 是一篇描述输入分区计算逻辑的好文章 HDFS块大小是分区的最大大小。因此,在您的示例中,分区的最小数量为3
partitions = ceiling(input size/block size)
通过将分区数作为参数传递给sc.textFile
可以进一步增加分区数,如sc.textFile(inputPath,numPartitions)
另一个设置mapreduce.input.fileinputformat.split.minsize
也起作用。您可以将其设置为增加分区的大小(并减少分区的数量)。因此,如果将mapreduce.input.fileinputformat.split.minsize设置为130MB
,则只会得到一个分区。是一篇描述输入分区计算逻辑的好文章
HDFS块大小是分区的最大大小。因此,在您的示例中,分区的最小数量为3
partitions = ceiling(input size/block size)
通过将分区数作为参数传递给sc.textFile
可以进一步增加分区数,如sc.textFile(inputPath,numPartitions)
另一个设置mapreduce.input.fileinputformat.split.minsize
也起作用。您可以将其设置为增加分区的大小(并减少分区的数量)。因此,如果您将mapreduce.input.fileinputformat.split.minsize设置为130MB
,那么您将只得到一个分区