背景:
我有几十亿行,我需要用它来运行逻辑回归。我选择L-BFGS,它在面对一个小数据集(1亿)时成功,但在面对数十亿行时总是失败。
我读了日志,发现了这个错误:
Job aborted due to stage failure: Task 54 in stage 37.0 failed 4 times, most recent failure:
Lost task 54.3 in stage 37.0 (TID 79670, 10.215.155.83):
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
由以下方式触发:
treeAggregate at StandardScaler.scala:55
我发现函数treeAggregate
似乎将分区号更改为70,我将其设置为5000.它解释了OOM,但我不知道为什么,我想知道如何将其更改为5000以避免OOM(VM的内存限制为14G,无法更改)。