code: public JavaPairRDD<K, Collection<V>> spanByKey(ClassTag<K> keyClassTag) {
          ClassTag<Tuple2<K, Collection<V>>> tupleClassTag = classTag(Tuple2.class);
          ClassTag<Collection<V>> vClassTag = classTag(Collection.class);
          RDD<Tuple2<K, Collection<V>>> newRDD = pairRDDFunctions.spanByKey()
                  .map(JavaApiHelper.<K, V, Seq<V>>valuesAsJavaCollection(), tupleClassTag);
  
          return new JavaPairRDD<>(newRDD, keyClassTag, vClassTag);
      }
docs: Groups items with the same key, assuming the items with the same key are next to each other in the
  collection. It does not perform shuffle, therefore it is much faster than using much more
  universal Spark RDD `groupByKey`. For this method to be useful with Cassandra tables, the key must
  represent a prefix of the primary key, containing at least the partition key of the Cassandra
  table.