【发布时间】:2018-01-29 05:30:22
【问题描述】:
Spark 中的任务数量由阶段开始时的 RDD 分区总数决定。比如Spark应用从HDFS读取数据时,Hadoop RDD的分区方式继承自MapReduce中的
FileInputFormat,受HDFS块大小、mapred.min.split.size的值、压缩方式等影响.
截图中的任务耗时 7、7、4 秒,我想让它们平衡。另外,stage分为3个task,有什么方法可以指定Spark的partitions/tasks个数吗?
【问题讨论】:
-
你可以先做
.repartition(200)操作:spark.apache.org/docs/latest/… 不过,输入的大小确实很小,因此HDFS块的数量也会很少。为了 HDFS 的最佳性能,块应该大约等于块大小。您可以在 Spark 中重新分区以在更多执行者之间分配数据。
标签: hadoop apache-spark rdd