aboutsummaryrefslogtreecommitdiff
path: root/mllib
diff options
context:
space:
mode:
authorJoseph K. Bradley <joseph@databricks.com>2015-07-22 23:27:25 -0700
committerXiangrui Meng <meng@databricks.com>2015-07-22 23:27:25 -0700
commit410dd41cf6618b93b6daa6147d17339deeaa49ae (patch)
tree4b488ecd8ce0f505dc1f60fa0ea56bf7aca3e8ed /mllib
parent2f5cbd860e487e7339e627dd7e2c9baa5116b819 (diff)
downloadspark-410dd41cf6618b93b6daa6147d17339deeaa49ae.tar.gz
spark-410dd41cf6618b93b6daa6147d17339deeaa49ae.tar.bz2
spark-410dd41cf6618b93b6daa6147d17339deeaa49ae.zip
[SPARK-9268] [ML] Removed varargs annotation from Params.setDefault taking multiple params
Removed varargs annotation from Params.setDefault taking multiple params. Though varargs is technically correct, it often requires that developers do clean assembly, rather than (not clean) assembly, which is a nuisance during development. CC: mengxr Author: Joseph K. Bradley <joseph@databricks.com> Closes #7604 from jkbradley/params-setdefault-varargs and squashes the following commits: 6016dc6 [Joseph K. Bradley] removed varargs annotation from Params.setDefault taking multiple params
Diffstat (limited to 'mllib')
-rw-r--r--mllib/src/main/scala/org/apache/spark/ml/param/params.scala5
-rw-r--r--mllib/src/test/java/org/apache/spark/ml/param/JavaTestParams.java3
2 files changed, 4 insertions, 4 deletions
diff --git a/mllib/src/main/scala/org/apache/spark/ml/param/params.scala b/mllib/src/main/scala/org/apache/spark/ml/param/params.scala
index 824efa5ed4..954aa17e26 100644
--- a/mllib/src/main/scala/org/apache/spark/ml/param/params.scala
+++ b/mllib/src/main/scala/org/apache/spark/ml/param/params.scala
@@ -476,11 +476,14 @@ trait Params extends Identifiable with Serializable {
/**
* Sets default values for a list of params.
*
+ * Note: Java developers should use the single-parameter [[setDefault()]].
+ * Annotating this with varargs can cause compilation failures due to a Scala compiler bug.
+ * See SPARK-9268.
+ *
* @param paramPairs a list of param pairs that specify params and their default values to set
* respectively. Make sure that the params are initialized before this method
* gets called.
*/
- @varargs
protected final def setDefault(paramPairs: ParamPair[_]*): this.type = {
paramPairs.foreach { p =>
setDefault(p.param.asInstanceOf[Param[Any]], p.value)
diff --git a/mllib/src/test/java/org/apache/spark/ml/param/JavaTestParams.java b/mllib/src/test/java/org/apache/spark/ml/param/JavaTestParams.java
index 3ae09d39ef..dc6ce8061f 100644
--- a/mllib/src/test/java/org/apache/spark/ml/param/JavaTestParams.java
+++ b/mllib/src/test/java/org/apache/spark/ml/param/JavaTestParams.java
@@ -96,11 +96,8 @@ public class JavaTestParams extends JavaParams {
new DoubleArrayParam(this, "myDoubleArrayParam", "this is a double param");
setDefault(myIntParam(), 1);
- setDefault(myIntParam().w(1));
setDefault(myDoubleParam(), 0.5);
- setDefault(myIntParam().w(1), myDoubleParam().w(0.5));
setDefault(myDoubleArrayParam(), new double[] {1.0, 2.0});
- setDefault(myDoubleArrayParam().w(new double[] {1.0, 2.0}));
}
@Override