Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在spark RDD中创建分区_Apache Spark - Fatal编程技术网

Apache spark 如何在spark 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

假设我正在使用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.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
,那么您将只得到一个分区