points.foreach(p=>p.y = another_value) will return a new modified RDD.

2014-03-24 18:13 GMT+08:00 Chieh-Yen <r01944...@csie.ntu.edu.tw>:

> Dear all,
>
> I have a question about the usage of RDD.
> I implemented a class called AppDataPoint, it looks like:
>
> case class AppDataPoint(input_y : Double, input_x : Array[Double]) extends
> Serializable {
>   var y : Double = input_y
>   var x : Array[Double] = input_x
>   ......
> }
> Furthermore, I created the RDD by the following function.
>
> def parsePoint(line: String): AppDataPoint = {
>   /* Some related works for parsing */
>   ......
> }
>
> Assume the RDD called "points":
>
> val lines = sc.textFile(inputPath, numPartition)
> var points = lines.map(parsePoint _).cache()
>
> The question is that, I tried to modify the value of this RDD, the
> operation is:
>
> points.foreach(p=>p.y = another_value)
>
> The operation is workable.
> There doesn't have any warning or error message showed by the system and
> the results are right.
> I wonder that if the modification for RDD is a correct and in fact
> workable design.
> The usage web said that the RDD is immutable, is there any suggestion?
>
> Thanks a lot.
>
> Chieh-Yen Lin
>

Reply via email to