如果我们有一个未压缩的320块HDFS文件存储在16个数据节点集群上。每个节点有20个块,如果我们使用Spark将这个文件读入RDD(在创建RDD时没有显式传递 numPartitions )
textFile = sc.textFile("hdfs://input/war-and-peace.txt")
如果每个节点上有一个16个执行器,那么每个执行器会创建多少个Spark RDD分区?它会为每个HDFS块创建一个分区,即20个分区吗?
答案 0 :(得分:1)
如果您有320 blocks
个HDFS,则以下代码将创建一个包含320个分区的RDD
:
val textFile = sc.textFile("hdfs://input/war-and-peace.txt")
textFile()
方法导致RDD
分区为same number of blocks
,因为文件存储在HDFS中。
您可以查看此question,这可能会解决您对分区的疑问