使用正确的Scala类型来降低内存占用量

时间:2016-12-21 14:32:41

标签: scala apache-spark

我有一个非常大的数据集,我使用Spark在本地处理。

数据集包含具有两个用户之间关系的元组,其中用户名是String,关系是Double:

(("Bob", "John"), 0.5)

数据集占用太多内存,我收到Java heap space错误,程序崩溃。

我的计划是通过使用不同的内存表示来降低数据集的占用空间。 我最初的想法是将String用户名更改为其哈希值,但显然Scala集合只接受类,因此我必须使用Integer来帮助它。 as referenced here Int / Integer是对象,当然也有数据开销。

由于集合不能与基元一起使用,我发现了TYPE数据类型,据我所知,它也是一个对象。

我的问题实际上是两个问题:

  1. 在集合中使用原语真的没有好方法吗?
  2. 在处理我之前指定的类型的巨型表时,是否还有其他任何可以应用的黑客?

0 个答案:

没有答案