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]