Spark环境配置笔记

2 篇文章 0 订阅
1 篇文章 0 订阅

Spark环境配置笔记

本地Pycharm调试Spark环境配置

  1. Pycharm 首先得装上(尽量别用社区版)
  2. Java8/ Python2都安装好(没难度,有问题自行百度)
  3. 下载Hadoop包/Scala包/Spark-Hadoop包(注意版本对应)
  4. 不管有用没用先用pip把py4j模块装上。同时pip安装pyspark模块
  5. Pycharm中 Run/Debug Configurations -> Environment -> Environment variables: 添加(SPARK_HOMEPYTHONPATHHADOOP_HOME)三个环境变量

PYTHONUNBUFFERED=1;SPARK_HOME=D:\spark-2.4.3-bin-hadoop2.6;PYTHONPATH=D:\spark-2.4.3-bin-hadoop2.6\python;HADOOP_HOME=D:\hadoop-2.6.5
在这里插入图片描述

  1. 为PySpark项目添加依赖库:
    Pycharm中 File -> Project: -> Project Structure -> Add ContentRoot
    (依赖库zip包都在spark-hadoop文件夹 /bin 目录下)
    在这里插入图片描述
  2. 配置完成。

PySpark本地调试遇到的坑

  • SparkConf的坑
    初始化SparkContext的代码如下所示:
conf = SparkConf().setAppName("wordcount").setMaster("local")
sc = SparkContext(conf)

结果报告运行错误:

ERROR SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: Could not parse Master URL: '<pyspark.conf.SparkConf object at 0x0000000002D95908>'

根据错误提示,以为是Master的设置有问题,实际上是实例化SparkContext有问题。阅读代码,发现它的构造函数声明如下所示:

    def __init__(self, master=None, appName=None, sparkHome=None, pyFiles=None,
               environment=None, batchSize=0, serializer=PickleSerializer(), conf=None,
               gateway=None, jsc=None, profiler_cls=BasicProfiler):

而前面的代码仅仅是简单的将conf传递给SparkContext构造函数,这就会导致Spark会将conf看做是master参数的值,即默认为第一个参数。所以这里要带名参数:

sc = SparkContext(conf=conf)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值