在 Spark 中,RDD 被表示为对象,通过对象上的方法调用来对 RDD 进行转换。
    RDD的方法叫算子,算子分为两大类,一类是转换算子(transformation),另一类叫行动算子(collect).

    转换算子不会直接执行,只是帮我们做业务逻辑的转换,比如说flatMap ,每次都会转换成新的RDD,但是具体的业务逻辑不会执行,当行动算子执行之后,转换算子才会给整个的业务逻辑计算触发.
    执行完了之后行动算子会向我们程序返回结果(就不是RDD了.直接就是结果了).
    Spark是延迟计算的,和我们的IO流是一样的,只有遇到行动算子才会去执行RDD的计算