在pyspark中分区输入文件的最有效方法是什么?

时间:2016-06-02 22:02:11

标签: python apache-spark pyspark

我正在使用PySpark读取输入文件,我想知道什么是重新分区输入数据的最佳方法,因此它可以在Mesos群集中均匀分布。

目前,我正在做:

rdd = sc.textFile('filename').repartition(10)

我正在查看sparkContext documentation,我注意到textFile方法有一个名为minPartitions的选项,默认设置为None

如果我在那里指定分区值,我想知道它是否会更有效率。例如:

rdd = sc.textFile('filename', 10)

我假设/希望它在数据被读入后消除了随机播放的需要,如果我以块开头读入文件。

我理解正确吗?如果没有,两种方法(如果有的话)有什么区别?

1 个答案:

答案 0 :(得分:1)

这些方法有两个主要区别:

通常,如果使用textFile加载数据,则无需进一步重新分区以获得大致均匀的分布。由于输入分割是基于数据量计算的,因此所有分区应该已经或多或少具有相同的大小。因此,进一步修改分区数量的唯一原因是提高内存或CPU内核等资源的利用率。