Spark MLlib:9570柱上的PCA需要太长时间

问题描述 投票:0回答:1

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得到不同的结果是否正常?

java apache-spark apache-spark-mllib pca ram
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.