我有一个非常大的数据集,我使用Spark在本地处理。
数据集包含具有两个用户之间关系的元组,其中用户名是String,关系是Double:
(("Bob", "John"), 0.5)
数据集占用太多内存,我收到Java heap space
错误,程序崩溃。
我的计划是通过使用不同的内存表示来降低数据集的占用空间。
我最初的想法是将String用户名更改为其哈希值,但显然Scala集合只接受类,因此我必须使用Integer
来帮助它。 as referenced here Int / Integer是对象,当然也有数据开销。
由于集合不能与基元一起使用,我发现了TYPE数据类型,据我所知,它也是一个对象。
我的问题实际上是两个问题: