VScode中pyspark调试配置以及无法启动调试问题


VSCode作为一个文本编辑器,可以通过插件扩展实现非常强大的功能,下面是我在学习python大数据脚本时搭建的本地测试spark脚本的python环境。


VSCode配置python

  1. 下载并安装python并配置环境变量(mac电脑中python命令一般是python2,python3则一般指向python3),下载并安装VSCode

  2. VSCode安装语言包(支持中文语言)、python扩展
    在 VSCode的Extensions模块直接搜索python-这是microsoft官方扩展组件。
    在这里插入图片描述
    在这里插入图片描述

  3. 新建文件(command+N/ctrl+N),输入以下代码:

    import os
    import sys
    print("hello python !")
    

    然后保存为.py文件,打开左侧边栏的Run模块,点击Run and Debug,下方的终端出现输出:
    在这里插入图片描述

  4. 配置调试环境
    点击运行-添加配置功能,来添加当前文件夹下的调试配置文件,或者通过点击Run模块下的create a launch.json file来添加配置文件。
    默认情况下python已经给我们配置了基本的调试配置,
    在其中我们添加pyspark的运行配置:

    {
            "name": "PySpark",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "osx": {
                
                "pythonPath": "${env:SPARK_HOME}/bin/spark-submit"
            },
            "windows": {
               
                "pythonPath": "${env:SPARK_HOME}/bin/spark-submit.cmd"
            },
            "linux": {
                
                "pythonPath": "${env:SPARK_HOME}/bin/spark-submit"
            },
            "program": "${file}",
            "cwd": "${workspaceFolder}",
            "env": {},
            "envFile": "${workspaceFolder}/.env"
        }
    

    具体的配置说明见:VSCode配置调试环境:https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

    配置好lanuch.json之后,在Run模块中可以选择要使用的配置pyspark

    在左下角可以选择使用的python的pythonpath路径–该配置会自动写入到settings.json文件中。

  5. 测试pyspark
    新建文件:
    输入如下代码:

    from pyspark import SparkContext
    from pyspark.sql import SparkSession
    from pyspark.sql import Row
    
    import pyspark
    import datetime
    import json
    import os
    import sys
    
    
    spark_name = os.environ.get('SPARK_HOME', None)
    if not spark_name:
        raise ValueError('spark环境没有配置好')
    
    
    data = []
    
    data.append([1480,  1, 1, '0', 'test'])
    
    schema = ['id', 'class_id', 'grade_id', 'classes', 'name']
    
    spark = SparkSession.builder.master("local").appName(
        "test").enableHiveSupport().getOrCreate()
    spark.sparkContext.setLogLevel('ERROR')
    
    df_test = spark.createDataFrame(data, schema)
    df_test.show()
    

    保存后选择我们配置的pyspark配置并运行,在VSCode的输出模块中输出:
    在这里插入图片描述
    至此,我们已经可以在VSCode中编写并调试python的大数据脚本啦

    无法启动pyspark调试的问题以及解决方法

    由于我一直使用的是2019版的VSCode,在2020年突发奇想更新VSCode到最新版本之后,结果发现pyspark的调试无法运行了!具体现象是点击Run模块中的开始调试按钮,在终端中没有任何输出。经过查看,发现在输出的log窗口中有关于error的日志如下:

    [2020-04-21 17:31:33.850] [renderer3] [error] timeout after 500 ms: Error: timeout after 500 ms
    at t.RawDebugSession.handleErrorResponse (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2954:952)
    at file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2954:250
    at async t.RawDebugSession.shutdown (file:///Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2952:336)
    

    解决方法:把python的插件版本降级到2019.10.44104,并关闭VSCode中的插件自动更新功能后完美解决。
    在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值