`rdd.union(rdd)` actually does not produce a cycle. The resulting tree has a root `UnionRDD` and two identical children `rdd`.