Apache spark Spark';为Hadoop分区计算的默认分区?
我正在阅读,关于分区,他说 默认情况下,为每个HDFS分区创建一个分区,通过 默认值为64MB 我对HDFS不是非常熟悉,但复制这一说法时遇到了一些问题。我有一个名为Apache spark Spark';为Hadoop分区计算的默认分区?,apache-spark,hadoop,Apache Spark,Hadoop,我正在阅读,关于分区,他说 默认情况下,为每个HDFS分区创建一个分区,通过 默认值为64MB 我对HDFS不是非常熟悉,但复制这一说法时遇到了一些问题。我有一个名为Reviews.csv的文件,它是亚马逊食品评论的330MB文本文件。给定默认的64MB块,我希望上限(330/64)=6个分区。但是,当我将文件加载到Spark Shell中时,我得到了9个分区: scala> val tokenized_logs = sc.textFile("Reviews.csv") tokenized
Reviews.csv
的文件,它是亚马逊食品评论的330MB文本文件。给定默认的64MB块,我希望上限(330/64)=6个分区。但是,当我将文件加载到Spark Shell中时,我得到了9个分区:
scala> val tokenized_logs = sc.textFile("Reviews.csv")
tokenized_logs: org.apache.spark.rdd.RDD[String] = Reviews.csv MapPartitionsRDD[1] at textFile at <console>:24
scala> tokenized_logs
res0: org.apache.spark.rdd.RDD[String] = Reviews.csv MapPartitionsRDD[1] at textFile at <console>:24
scala> tokenized_logs.partitions
res1: Array[org.apache.spark.Partition] = Array(org.apache.spark.rdd.HadoopPartition@3c1, org.apache.spark.rdd.HadoopPartition@3c2, org.apache.spark.rdd.HadoopPartition@3c3, org.apache.spark.rdd.HadoopPartition@3c4, org.apache.spark.rdd.HadoopPartition@3c5, org.apache.spark.rdd.HadoopPartition@3c6, org.apache.spark.rdd.HadoopPartition@3c7, org.apache.spark.rdd.HadoopPartition@3c8, org.apache.spark.rdd.HadoopPartition@3c9)
scala> tokenized_logs.partitions.size
res2: Int = 9
然而,根据我的计算,应该有天花板(135/4)=3个分区,而不是4个
我在本地运行一切,在我的MacBookPro上。有人能解释一下如何计算HDFS的默认分区数吗?来自:
默认情况下,Spark为文件的每个块创建一个分区
(HDFS中的块默认为128MB),但您也可以请求
通过传递较大的值来增加分区数。注意你
分区不能少于块
128MB只是默认的HDFS块大小,但对于任何文件,实际上都可能有所不同。在您的情况下,分区的数量意味着您的文件是使用非默认块大小写入的(或者更可能由多个较小的文件组成)
有关确定HDFS文件拆分成的块数的方法,请参阅。来自:
默认情况下,Spark为文件的每个块创建一个分区
(HDFS中的块默认为128MB),但您也可以请求
通过传递较大的值来增加分区数。注意你
分区不能少于块
128MB只是默认的HDFS块大小,但对于任何文件,实际上都可能有所不同。在您的情况下,分区的数量意味着您的文件是使用非默认块大小写入的(或者更可能由多个较小的文件组成)
有关确定HDFS文件拆分成的块数的方法,请参阅。谢谢。使用非默认块大小写入文件的典型原因是什么?我不记得在HDFS上调整过任何配置。这完全取决于文件的编写方式。谢谢。使用非默认块大小写入文件的典型原因是什么?我不记得在HDFS上调整过任何配置。这完全取决于文件的编写方式。
scala> val raw_reviews = sc.textFile("Reviews_Smaller.csv")
raw_reviews: org.apache.spark.rdd.RDD[String] = Reviews_Smaller.csv MapPartitionsRDD[11] at textFile at <console>:24
scala> raw_reviews.partitions.size
res7: Int = 4