2

背景:

1、Spark 64核(执行器)、2个Node、32核/每个、100GB内存/节点

2、1GB浮点二维二进制数组数据

[   
 0.2, 0.6 ...
]    

3、操作:将每个Array单元映射成一个元组列表,每个单元复制5次,例如,

    ((id0, 0.2),(id1, 0.2), (id2, 0.2),(id3, 0.2),(id4, 0.2), (id5, 0.2), (id6, 0.6) ..... ) 
    id: is calculated based on some standard. 

从 Spark UI 中,我发现导入数据大小为 105GB(太大?)。

在我看来,15GB 是一个粗略的数字。

    (1GB Array Data (Float) + 2 GB id (long) ) * 5 = 15GB
    * 5  because that each cell is repeated five times in my flatmap function.

Spark如何在内存中表示这些数据,为什么这么大?

4

0 回答 0