Hi, everyone.

I'm using scala to implement a connected component algorithm in Spark. And the 
question codes are as follows:

1    type Graph = ListBuffer[Array[String]] 
2    type CCS = ListBuffer[Graph]
3    val ccs_array:Array[CCS] = graphs_rdd.map{ graph => 
find_cc(graph)}.collect() 
4    var ccs_1 = ccs_array(0)
5    print_ccs(ccs_1)
6    ccs_1(0) += Array("1", "100")
7    print_ccs(ccs_1)

It seems that line 6 did not change ccs_1's data. line 5 and line 7 shows the 
same result.

And I tried this: if initialize ccs_array with ordinary data, ccs_1 can be 
successfully changed.


Is that mean the data returned by collect() can not be changed with the code 
like line 6?
How should I change my codes?





    Thanks.

Qiang Yang

Reply via email to