While it is faster, it exposes a problem that a lot of internal Spark code uses case(k, v) to pattern match, and this would be problematic in the case of non-tuple2 product2.... I will update the PR later.