Я разработал приложение для Scala и получаю из него почти правильные результаты. Но я не уверен, что мой код использует преимущества параллельного параллелизма.
Я использую Spark в автономном режиме с двумя виртуальными рабочими с 2 ядрами и памятью 2G каждый.
Ниже приведен фрагмент кода из приложения:
Инициализация СДР:
for(i <- 0 to limit-1){
data+=new MyClass(dimension_limit) with Serializable
}
var example_rdd = sc.parallelise(data)
Операции с СДР:
var temp_rdd: RDD[MyClass] = sc.emptyRDD[MyClass]
temp_rdd = example_rdd
var updated_rdd: RDD[MyClass] = sc.emptyRDD[MyClass]
for(i <- 0 to no_of_iterations-1){
updated_rdd = temp_rdd.map{ x => updation_function(x)}
updated_rdd.count() // to trigger the map
temp_rdd = updated_rdd
}
Функция обновления:
def update_function(x: MyClass): MyClass{
x.property1 = "value"
.
.
.
//all updations
return x
}
Ниже приведен снимок работы с сервера истории
и это детали сцены:
Пожалуйста, помогите мне определить, работает ли мой код параллельно; если нет, в чем может быть проблема в моей реализации?