Spark MLlib:9570列上的PCA花费的时间太长

时间:2019-02-22 13:28:34

标签: java apache-spark apache-spark-mllib pca ram

1)我正在9570列上进行PCA,在本地模式下为其提供12288 mb RAM(这意味着仅驱动程序),它需要1.5个小时到2个小时。这是代码(非常简单):

System.out.println("level1\n");
VectorAssembler assemblerexp = new VectorAssembler()
       .setInputCols(metincols)
       .setOutputCol("intensity");
expoutput = assemblerexp.transform(expavgpeaks);

System.out.println("level2\n");
PCAModel pcaexp = new PCA()
       .setInputCol("intensity")
       .setOutputCol("pcaFeatures")
       .setK(2)
       .fit(expoutput);

System.out.println("level3\n");

因此,打印到level3所花费的时间是很长的时间(1.5到2个小时)。花这么长时间是正常的吗?我尝试了不同的数字分区(2、4、6、8、50、500、10000),其中一些分区也花费了将近2个小时,而其他分区则出现了Java堆空间错误。还有一些来自Spark用户界面的图片:

  

Executors Jobs Stages environment

2)每次PCA获得不同的结果是否正常?

1 个答案:

答案 0 :(得分:0)

如果您以编程方式设置RAM,它不会生效,正确的方法是提供JVM参数。