spark-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From viirya <...@git.apache.org>
Subject [GitHub] spark pull request #21276: [SPARK-24216][SQL] Spark TypedAggregateExpression...
Date Tue, 12 Jun 2018 06:49:09 GMT
Github user viirya commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21276#discussion_r194630048
  
    --- Diff: core/src/main/scala/org/apache/spark/util/Utils.scala ---
    @@ -2715,6 +2716,62 @@ private[spark] object Utils extends Logging {
         HashCodes.fromBytes(secretBytes).toString()
       }
     
    +  /**
    +   * Safer than Class obj's getSimpleName which may throw Malformed class name error
in scala.
    +   * This method mimicks scalatest's getSimpleNameOfAnObjectsClass.
    +   */
    +  def getSimpleName(cls: Class[_]): String = {
    +    try {
    +      return cls.getSimpleName
    +    } catch {
    +      case err: InternalError => return stripDollars(stripPackages(cls.getName))
    +    }
    +  }
    +
    +  /**
    +   * Remove the packages from full qualified class name
    +   */
    +  private def stripPackages(fullyQualifiedName: String): String = {
    +    fullyQualifiedName.split("\\.").takeRight(1)(0)
    +  }
    +
    +  /**
    +   * Remove trailing dollar signs from qualified class name,
    +   * and return the trailing part after the last dollar sign in the middle
    +   */
    +  private def stripDollars(s: String): String = {
    +    val lastDollarIndex = s.lastIndexOf('$')
    +    if (lastDollarIndex < s.length - 1) {
    +      // The last char is not a dollar sign
    +      if (lastDollarIndex == -1 || !s.contains("$iw")) {
    +        // The name does not have dollar sign or is not an intepreter
    +        // generated class, so we should return the full string
    +        s
    +      } else {
    +        // The class name is intepreter generated,
    +        // return the part after the last dollar sign
    +        // This is the same behavior as getClass.getSimpleName
    +        s.substring(lastDollarIndex + 1)
    +      }
    +    }
    +    else {
    --- End diff --
    
    style:
    ```scala
    if (...) {
    } else {
    }


---

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


Mime
View raw message