aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatei Zaharia <matei@eecs.berkeley.edu>2013-01-07 16:50:23 -0500
committerMatei Zaharia <matei@eecs.berkeley.edu>2013-01-07 16:50:23 -0500
commit9c32f300fb4151a2b563bf3d2e46469722e016e1 (patch)
tree50a5f3d65f45693a27394b9482c83e7964305d98
parent8fd3a70c188182105f81f5143ec65e74663582d5 (diff)
downloadspark-9c32f300fb4151a2b563bf3d2e46469722e016e1.tar.gz
spark-9c32f300fb4151a2b563bf3d2e46469722e016e1.tar.bz2
spark-9c32f300fb4151a2b563bf3d2e46469722e016e1.zip
Add Accumulable.setValue for easier use in Java
-rw-r--r--core/src/main/scala/spark/Accumulators.scala20
-rw-r--r--core/src/test/scala/spark/JavaAPISuite.java4
2 files changed, 19 insertions, 5 deletions
diff --git a/core/src/main/scala/spark/Accumulators.scala b/core/src/main/scala/spark/Accumulators.scala
index 6280f25391..b644aba5f8 100644
--- a/core/src/main/scala/spark/Accumulators.scala
+++ b/core/src/main/scala/spark/Accumulators.scala
@@ -63,9 +63,12 @@ class Accumulable[R, T] (
/**
* Access the accumulator's current value; only allowed on master.
*/
- def value = {
- if (!deserialized) value_
- else throw new UnsupportedOperationException("Can't read accumulator value in task")
+ def value: R = {
+ if (!deserialized) {
+ value_
+ } else {
+ throw new UnsupportedOperationException("Can't read accumulator value in task")
+ }
}
/**
@@ -82,10 +85,17 @@ class Accumulable[R, T] (
/**
* Set the accumulator's value; only allowed on master.
*/
- def value_= (r: R) {
- if (!deserialized) value_ = r
+ def value_= (newValue: R) {
+ if (!deserialized) value_ = newValue
else throw new UnsupportedOperationException("Can't assign accumulator value in task")
}
+
+ /**
+ * Set the accumulator's value; only allowed on master
+ */
+ def setValue(newValue: R) {
+ this.value = newValue
+ }
// Called by Java when deserializing an object
private def readObject(in: ObjectInputStream) {
diff --git a/core/src/test/scala/spark/JavaAPISuite.java b/core/src/test/scala/spark/JavaAPISuite.java
index 912f8de05d..0817d1146c 100644
--- a/core/src/test/scala/spark/JavaAPISuite.java
+++ b/core/src/test/scala/spark/JavaAPISuite.java
@@ -624,5 +624,9 @@ public class JavaAPISuite implements Serializable {
}
});
Assert.assertEquals((Float) 25.0f, floatAccum.value());
+
+ // Test the setValue method
+ floatAccum.setValue(5.0f);
+ Assert.assertEquals((Float) 5.0f, floatAccum.value());
}
}