Github user massie commented on the pull request:

    https://github.com/apache/spark/pull/7403#issuecomment-139301528
  
    The class names are `private` now and all tests pass.
    
    To provide a little more explanation of why the `combineByKeyWithClasstag` 
methods are needed (instead of just naming them `combineByKey`.
    
    ```scala
    class PlaySuite extends SparkFunSuite {
    
      def combine[C](c: C): Unit = {
        println("Running combine without ClassTag")
      }
    
      def combine[C](c: C)(implicit ct: ClassTag[C]): Unit = {
        println("Running combin with ClassTag")
      }
    
      test("Example") {
        combine(42)
      }
    
    }
    ```
    
    Causes the compiler to throw the error:
    
    ```
    Error:(34, 5) ambiguous reference to overloaded definition,
    both method combine in class PlaySuite of type [C](c: C)(implicit ct: 
scala.reflect.ClassTag[C])Unit
    and  method combine in class PlaySuite of type [C](c: C)Unit
    match argument types (Int)
        combine(42)
        ^
    ```
    
    There's unfortunately no way to add ClassTags and not break compatibility 
without have these new methods.
    
    I hope that you find this PR is ready to merge now. Please let me know if 
you see anything else that needs to be done.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to