在Spark编程指南中提到,切片是RDD的一个特性(包括并行集合或Hadoop数据集)。("Spark将为每个切片运行一个任务。")但在RDD持久性部分中,使用了分区概念而没有介绍。此外,RDD文档只提到分区,没有提到切片,而SparkContext文档则提到用于创建RDD的切片和用于在RDD上运行作业的分区。这两个概念是相同的吗?如果不是,它们有何不同?
调整-并行级别指出:“Spark会根据文件大小自动设置要在每个文件上运行的‘map’任务数量…对于分布式“reduce”操作,例如groupByKey和reduceByKey,它使用最大父RDD的分区数。您可以将并行级别作为第二个参数传递...."那么这是否解释了分区和切片之间的差异?分区与RDD存储相关,而切片与并行度相关,默认情况下,切片是根据数据大小或分区数计算出来的吗?
sc.parallelize(c, numSlices=100)
。如果参数被重命名,那么这些代码就会出问题。 - Daniel Darabos