Apache spark Spark分区-分区大小

Apache spark Spark分区-分区大小,apache-spark,Apache Spark,我试图理解sparks中的分区如何处理非键值对记录。 命令如下 val FileRDD= sc.textFile("hdfs://nameservice1:8020/apps/file/outbound/terms/processed/HDFC_outbound/HDFC_EXTRACT_604/HDFC_RBI_20180205.dat"); 文件大小为512字节。我还没有配置任何分区,partitioner=NONE。 当我给出命令FileRDD.partitions.size时,我得到了

我试图理解sparks中的分区如何处理非键值对记录。 命令如下

val FileRDD= sc.textFile("hdfs://nameservice1:8020/apps/file/outbound/terms/processed/HDFC_outbound/HDFC_EXTRACT_604/HDFC_RBI_20180205.dat");
文件大小为512字节。我还没有配置任何分区,partitioner=NONE。 当我给出命令FileRDD.partitions.size时,我得到了2个分区。
我想了解如何有两个分区。

Spark试图避免读取时节点之间的数据移动。这意味着它将读取这些部件所在机器上的部分文件。可能您只有文件的两部分,因此您有两个分区。您可以通过检查文件中有多少部分是向导来检查这一点。对于更大的文件,我认为每个节点也可能有多个分区/节点。Spark在引擎盖下使用HDFS InputFormat API。分区的数量取决于数据块大小,即数据的物理分区。也可以在分区内进一步拆分数据。Spark提供了诸如重新分区、合并、,重新分区和SortWithinPartition可以让您直接控制正在计算的分区数。但是文件的总大小只有512字节。所以这应该是理想的1分。