## 3、如何生成RDD

**有三种创建方式**

- 从外部文件创建

  - 支持本地磁盘文件

  - 支持整个目录、多文件、通配符

  - 支持压缩文件

  - 支持hdfs

    ```
    #读取本地文件
    sc.textFile("file:///xxx/xxx.txt")
    #读取压缩包
    sc.textFile("file:///xxx/xxx.gz")
    #读取hdfs的上的文件
    sc.textFile("hdfs://node-teach:8020/xxx/xxx.log")
    ```

- 集合并行化：把非RDD数据转换为RDD

  ```
  #定义一个列表，并将列表序列化为rdd
  data=[1,2,3,4,5]
  rdd1 = sc.parallelize(data)
  ```

- 从父RDD生成子RDD

  - 从父RDD生成子RDD

    ![s3](pics/s3.png)