预先确定RDD的分区数

时间:2015-06-04 17:52:19

标签: amazon-s3 apache-spark hdfs

  

1)如何预先确定将要分配的RDD分区数   创建?
  2)数据分区的所有因素取决于什么?是   它只是数据的大小和存储方式(压缩,顺序   等。)

对于Simplicity,假设我将HDFS中的6GB文件存储为纯文本文件。

我的群集是具有以下配置的EC2群集,

  

1个主节点 - m3.xlarge(4核,15GB Ram)

     

4个核心节点 - m3.xlarge(4核,每个15GB Ram)

更新 如果相同的内容存储在s3,HBase或任何NoSQL中会发生什么?

1 个答案:

答案 0 :(得分:2)

分区取决于文件类型。在您的情况下,由于它是HDFS文件,因此默认的分区数是输入拆分的数量,这取决于您的hadoop设置。但如果你想要的只是一种理解它是如何工作的方式。

来自HadoopRDD.getPartitions

val inputSplits = inputFormat.getSplits(jobConf, minPartitions)
val array = new Array[Partition](inputSplits.size)