RDD中包含的元素数量和其理想分区数之间是否有关系?
我有一个RDD,它有成千上万个分区(因为我从由多个小文件组成的源文件中加载它,这是一个我无法解决的限制,所以我必须处理它)。我想重新分区它(或使用coalesce
方法)。但我不知道RDD将包含的确切事件数量。
因此,我希望以自动化方式完成这项工作。类似于:
val numberOfElements = rdd.count()
val magicNumber = 100000
rdd.coalesce( numberOfElements / magicNumber)
有没有什么经验法则可以确定RDD的最佳分区数和其元素数量?
谢谢。
Spark
性能时应该根据记录数还是字节数来权衡partition
的大小?我的Spark
作业从MySQL
中以并行方式读取数据失败了(详情请见https://dev59.com/Janka4cB1Zd3GeqPQpu5),我怀疑这可能是由于`partition`的大小。[这个链接](https://www.slideshare.net/hadooparchbook/top-5-mistakes-when-writing-spark-applications-66374492/39) 表示,partition
的大小应该是** ~ 128 MB (没有提及行数),但我的partition
大小可以达到 ~ 10 GB** ,包含约** ~ 15 M** 条记录(如果读取成功的话)。 - y2k-shubham