This trick is similar to the one used in the classic WordCount example.  The 1 here is not the key, but the initial value to enable `reduceByKey` to calculate the count of each label.  The key is actually `label.toInt` (`a -> b` is equivalent to `(a, b)`, often used to represent key value mappings).

By mapping `LabeledPoint(label: Double, features: Array[Double])`s in the original input RDD to the form of `label.toInt -> (1, features)`, we unifies the local combiner and global reducer function, so that `reduceByKey` can take care of both local combine and global reduce for us.