code: public ScanRangeSplits combineGroups() {
          return new ScanRangeSplits(ImmutableList.of(new SplitGroup(
                  FluentIterable.from(_splitGroups)
                          .transformAndConcat(new Function<SplitGroup, Iterable<TokenRange>>() {
                              @Override
                              public Iterable<TokenRange> apply(SplitGroup splitGroup) {
                                  return splitGroup.getTokenRanges();
                              }
                          })
                          .toList())));
      }
docs: Returns a new ScanRangeSplits where all of the token ranges from all groups are combined into a single group.
  This is useful when the caller is going to perform an operation on all token ranges and is not concerned about
  creating hot spots.