Github user MLnick commented on a diff in the pull request:
https://github.com/apache/spark/pull/19993#discussion_r162043704
--- 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 --
@viirya your actual method in #20146 is slightly different (see
[here](https://github.com/apache/spark/pull/20146/files#diff-72f95a0938e5a140d5126f06bdc381a6R254)).
Is that the best version to use?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]