Github user huaxingao commented on a diff in the pull request:

    https://github.com/apache/spark/pull/20442#discussion_r164956149
  
    --- Diff: 
mllib/src/main/scala/org/apache/spark/ml/feature/QuantileDiscretizer.scala ---
    @@ -167,25 +167,31 @@ final class QuantileDiscretizer @Since("1.6.0") 
(@Since("1.6.0") override val ui
       @Since("2.3.0")
       def setOutputCols(value: Array[String]): this.type = set(outputCols, 
value)
     
    -  private[feature] def getInOutCols: (Array[String], Array[String]) = {
    -    require((isSet(inputCol) && isSet(outputCol) && !isSet(inputCols) && 
!isSet(outputCols)) ||
    -      (!isSet(inputCol) && !isSet(outputCol) && isSet(inputCols) && 
isSet(outputCols)),
    -      "QuantileDiscretizer only supports setting either inputCol/outputCol 
or" +
    -        "inputCols/outputCols."
    -    )
    +  @Since("1.6.0")
    +  override def transformSchema(schema: StructType): StructType = {
    +    ParamValidators.checkSingleVsMultiColumnParams(this, Seq(outputCol),
    +      Seq(outputCols))
     
    -    if (isSet(inputCol)) {
    -      (Array($(inputCol)), Array($(outputCol)))
    -    } else {
    -      require($(inputCols).length == $(outputCols).length,
    -        "inputCols number do not match outputCols")
    -      ($(inputCols), $(outputCols))
    +    if (isSet(inputCols)) {
    +      require(getInputCols.length == getOutputCols.length,
    +        s"QuantileDiscretizer $this has mismatched Params " +
    --- End diff --
    
    The only reason I have $this is because Bucketizer has $this and I am 
trying to be consistent with Bucketizer implementation.
    ```
        if (isSet(inputCols)) {
          require(getInputCols.length == getOutputCols.length &&
            getInputCols.length == getSplitsArray.length, s"Bucketizer $this 
has mismatched Params " +
            s"for multi-column transform.  Params (inputCols, outputCols, 
splitsArray) should have " +
    ```


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to