1) Я делаю PCA на 9570 столбцах, предоставляя ему 12288 МБ ОЗУ в локальном режиме (что означает только драйвер), и это занимает от 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:
Исполнители Работа Этапы среда
2) Также нормально, что я каждый раз получаю разные результаты с PCA?