RDD分区和切片有什么区别?

21

Spark编程指南中提到,切片是RDD的一个特性(包括并行集合或Hadoop数据集)。("Spark将为每个切片运行一个任务。")但在RDD持久性部分中,使用了分区概念而没有介绍。此外,RDD文档只提到分区,没有提到切片,而SparkContext文档则提到用于创建RDD的切片和用于在RDD上运行作业的分区。这两个概念是相同的吗?如果不是,它们有何不同?

调整-并行级别指出:“Spark会根据文件大小自动设置要在每个文件上运行的‘map’任务数量…对于分布式“reduce”操作,例如groupByKey和reduceByKey,它使用最大父RDD的分区数。您可以将并行级别作为第二个参数传递...."那么这是否解释了分区和切片之间的差异?分区与RDD存储相关,而切片与并行度相关,默认情况下,切片是根据数据大小或分区数计算出来的吗?


10
我很确定它们是相同的,只是名称不一致。我已经提交了一个错误报告:https://issues.apache.org/jira/browse/SPARK-1701 - Daniel Darabos
@DanielDarabos Pyspark parallelize 仍然涉及 numSlices,这是一个边缘情况吗? - Chris Snow
修改代码比修改文档要棘手得多。可能有一堆代码包含 sc.parallelize(c, numSlices=100)。如果参数被重命名,那么这些代码就会出问题。 - Daniel Darabos
1个回答

17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接