【发布时间】:2015-03-30 14:05:06
【问题描述】:
我有一个大数据文件(大约 4 GB),我正在单台电脑上使用 spark 对其进行分析。
scala> x
res29: org.apache.spark.mllib.linalg.distributed.RowMatrix = org.apache.spark.mllib.linalg.distributed.RowMatrix@5a86096a
scala> x.numRows
res27: Long = 302529
scala> x.numCols
res28: Long = 1828
当我尝试计算主成分时出现内存错误:
scala> val pc: Matrix = x.computePrincipalComponents(2)
15/03/30 14:55:22 INFO ContextCleaner: Cleaned shuffle 1
java.lang.OutOfMemoryError: Java heap space
at breeze.linalg.svd$.breeze$linalg$svd$$doSVD_Double(svd.scala:92)
at breeze.linalg.svd$Svd_DM_Impl$.apply(svd.scala:39)
at breeze.linalg.svd$Svd_DM_Impl$.apply(svd.scala:38)
at breeze.generic.UFunc$class.apply(UFunc.scala:48)
at breeze.linalg.svd$.apply(svd.scala:22)
at org.apache.spark.mllib.linalg.distributed.RowMatrix.computePrincipalComponents(RowMatrix.scala:380)
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:39)
我该如何解决?
【问题讨论】:
标签: scala apache-spark apache-spark-mllib