Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,15 @@ public final <T> JavaRDD<T> union(JavaRDD<T>... rdds) {
if (rdds.length == 0) {
throw new IllegalArgumentException("Union called on empty list");
}
List<JavaRDD<T>> rest = new ArrayList<>(rdds.length - 1);
for (int i = 1; i < rdds.length; i++) {
rest.add(rdds[i]);
}
rest = populateRDDList(rdds);
return union(rdds[0], rest);
}

public JavaDoubleRDD union(JavaDoubleRDD... rdds) {
if (rdds.length == 0) {
throw new IllegalArgumentException("Union called on empty list");
}
List<JavaDoubleRDD> rest = new ArrayList<>(rdds.length - 1);
for (int i = 1; i < rdds.length; i++) {
rest.add(rdds[i]);
}
rest = populateRDDList(rdds);
return union(rdds[0], rest);
}

Expand All @@ -52,11 +46,16 @@ public final <K, V> JavaPairRDD<K, V> union(JavaPairRDD<K, V>... rdds) {
if (rdds.length == 0) {
throw new IllegalArgumentException("Union called on empty list");
}
List<JavaPairRDD<K, V>> rest = new ArrayList<>(rdds.length - 1);
rest = populateRDDList(rdds);
return union(rdds[0], rest);
}

private static final <T> List<T> populateRDDList(T[] rdds) {
List<T> rest = new ArrayList<>(rdds.length - 1);
for (int i = 1; i < rdds.length; i++) {
rest.add(rdds[i]);
}
return union(rdds[0], rest);
return rdds;
}

// These methods take separate "first" and "rest" elements to avoid having the same type erasure
Expand Down