我已经开发了一个scala应用程序,并且我得到的结果几乎是正确的。但是我不确定我的代码是否利用了火花并行性。
我正在以独立模式运行spark,该模式有两个虚拟工,每个虚拟工具有2个内核和2G内存。
下面是应用程序中的代码段:
RDD的初始化:
for(i <- 0 to limit-1){
data+=new MyClass(dimension_limit) with Serializable
}
var example_rdd = sc.parallelise(data)
RDD操作:
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
}
下面是历史服务器中的作业快照
这是舞台细节:
请帮助我确定我的代码是否并行运行;如果不是的话,我的实施过程中可能会出现什么问题?