2017-08-27 68 views
1

使用Spark-SQL时,如何估算Spark Shuffle所需的内存和磁盘?如何估算Spark Shuffle所需的内存和磁盘?

SQL:

选择键,collect_set(值)由表-A组由密钥;

如果表-A具有N行,K键,每个键行为b个字节, 我可以使用C核,在那里估计内存和磁盘所需的火花洗牌的方法吗?

spark版本:2.1.0,使用基于排序的随机播放。

回答

0

没有作出有关键和值分布的任何假设最坏的情况将是:

  • K - 1键只有一个值。
  • 1键N - K + 1的唯一值。

假设散列函数保持的属性,以及键芯之间均匀分布这给存储器

(((N - K + 1)/C + N - K + 1) * bytes) * serialization_efficiency 

用于与最高负载的芯,其中峰的存储器需求应该正比于(如果数据可以否则从磁盘加载):

(N - K + 1) * bytes 
相关问题