PySpark ---- Sparkcontext编程入口

SparkContext是PySpark的编程入口,作业的提交,任务的分发,应用的注册都会在SparkContext中进行。一个SparkContext实例代表着和Spark的一个连接,只有建立了连接才可以把作业提交到集群中去。实例化了SparkContext之后才能创建RDD和Broadcast广播变量。

  • 1.创建方式

    • 1.1 通过SparkSession获取SparkContext对象
    • 1.2 引入pyspark.SparkContext进行创建,如下代码所示
      from pyspark import SparkContext
      from pyspark import SparkConf
      conf = SparkConf()
      conf.set('master','local')
      sparkContext = SparkContext(conf=conf)
      rdd = sparkContext.parallelize(range(100))
      print(rdd.collect())
      sparkContext.stop()

      上面代码中的Sparkconf对象是Spark里面用来配置参数的对象,后续会着重讲解

  •  2.SparkContext的内容(主要是方法讲解)

    • 2.1  accumulator()
      • 是Sparkcontext上用来创建累加器的方法。创建的累加器可以在各个task中进行累加,并且只能够支持add操作。该方法 支持传入累加器的初始值。这里以Accumulator累加器做1到50的加法作为讲解的例子
      • # 新建accumulator.py文件,内容如下:
        
        from pyspark import SparkContext,SparkConf
        import numpy as np
        conf = SparkConf()
        conf.set('master','spark://****:7077')
        context = SparkContext(conf=conf)
        acc = context.accumulator(0)
        print(type(acc),acc.value)
        rdd = context.parallelize(np.arange(101),5)
        def acc_add(a):
            acc.add(a)
            return a
        rdd2 = rdd.map(acc_add)
        print(rdd2.collect())
        print(acc.value)
        context.stop()
        

        使用spark-submit accumulator.py运行

    • 2.2  addFile()

      • addFile方法添加文件,使用SparkFiles.get方法获取文件 .

      • 这个方法接收一个路径,该方法将会把本地路径下的文件上传到集群中,以供运算过程中各个node节点下载数据,路径可以是本地路径也可是hdfs路径,或者一个http,https,或者tfp的uri。如果上传的是一个文件夹,则指定recursize参数为True.上传的文件使用 SparkFiles.get(filename)的方式进行获取。

      • 新建addFile.py文件,内容如下:
        from pyspark import SparkFiles
        import os
        import numpy as np
        from pysp
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值