构建RDD的几种方式

1-构建RDD的几种方式

  • 通过自定义的方式来构建

    • # !/usr/bin/env python
      # -*-coding:utf-8 -*-
      
      """
      # File       : _01_create_rdd.py
      # Time       :2022/4/15 14:57
      # Author     :author name
      # version    :python 3.6
      # Description:
      """
      from pyspark import SparkConf, SparkContext
      
      if __name__ == '__main__':
          print("构建RDD的第一种方式")
          # 1)构建SparkContext 对象
          conf = SparkConf().setMaster("local[3]").setAppName("create_rdd_01")
          sc = SparkContext(conf=conf)
          # 2) 读取数据 parallelize
          rdd_init = sc.parallelize(['张三', '李四', '王五', '赵六', '田七'])
          # 查看多少个分区?glom
          print(rdd_init.glom().collect())
          print(rdd_init.getNumPartitions())
          # 3) 对数据进行处理
          # 需求将每一个元素变更为(name,1)
          rdd_map = rdd_init.map(lambda name: (name, 1))
          # 4)输出数据:直接打印
          print(rdd_map.collect())
          # 5)关闭sc对象
          sc.stop()
      
  • 通过读取外部数据源的方式来构建

    • # !/usr/bin/env python
      # -*-coding:utf-8 -*-
      
      """
      # File       : _02_create_rdd.py
      # Time       :2022/4/15 15:11
      # Author     :author name
      # version    :python 3.6
      # Description:
      """
      from pyspark import SparkConf, SparkContext
      
      if __name__ == '__main__':
          print("第二种方式构建RDD")
          # 创建sparkContext 对象
          conf = SparkConf().setMaster("local[*]").setAppName("create_rdd_02")
          sc = SparkContext(conf=conf)
          # 构建RDD对象:加载外部数据集
          # 本地路径 指的是linux 的本地路径 file:///   hafs协议:hdfs://node1:8020
          # 注意 在加载外部数据集的时候,如果数据是本地路径,默认情况下,文件有多少个,自动划分为多少个分区数量
          # 如果数据在hdfs路径,默认情况下,有多少个block块,对应有多少分区数量
          rdd_init = sc.textFile('file:///相关路径')
          # 查看分区数量
          print(rdd_init.getNumPartitions())
          # 查看分区数据
          print(rdd_init.glom().collect())
          # 打印数据收集到drive端
          print(rdd_init.collect())
          # 关闭sc对象
          sc.stop()
      
      

你可能感兴趣的:(pyspark,spark,python,大数据)