Github user MLnick commented on a diff in the pull request:
https://github.com/apache/spark/pull/19993#discussion_r161681586
--- Diff: mllib/src/main/scala/org/apache/spark/ml/param/params.scala ---
@@ -249,6 +250,27 @@ object ParamValidators {
def arrayLengthGt[T](lowerBound: Double): Array[T] => Boolean = {
(value: Array[T]) =>
value.length > lowerBound
}
+
+ /**
+ * Checks that either inputCols and outputCols are set or inputCol and
outputCol are set. If
+ * this is not true, an `IllegalArgumentException` is raised.
+ * @param model
+ */
+ private[spark] def checkMultiColumnParams(model: Params): Unit = {
+ model match {
+ case m: HasInputCols with HasInputCol if m.isSet(m.inputCols) &&
m.isSet(m.inputCol) =>
+ raiseIncompatibleParamsException("inputCols", "inputCol")
+ case m: HasOutputCols with HasOutputCol if m.isSet(m.outputCols) &&
m.isSet(m.outputCol) =>
+ raiseIncompatibleParamsException("outputCols", "outputCol")
+ case _ =>
+ }
--- End diff --
I am not sure if #20146 will get merged for `2.3` - but I think we must
merge this PR for `2.3` because I'd prefer not to have this inconsistency in
param error handling between `QuantileDiscretizer` and `Bucketizer`. This is a
relatively small change, so we can merge it into the branch if we move it
quickly.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]