VSCode作为一个文本编辑器,可以通过插件扩展实现非常强大的功能,下面是我在学习python大数据脚本时搭建的本地测试spark脚本的python环境。
VSCode配置python
-
下载并安装python并配置环境变量(mac电脑中python命令一般是python2,python3则一般指向python3),下载并安装VSCode。
-
VSCode安装语言包(支持中文语言)、python扩展
在 VSCode的Extensions模块直接搜索python-这是microsoft官方扩展组件。
-
新建文件(command+N/ctrl+N),输入以下代码:
import os import sys print("hello python !")
然后保存为.py文件,打开左侧边栏的Run模块,点击Run and Debug,下方的终端出现输出:
-
配置调试环境
点击运行-添加配置功能,来添加当前文件夹下的调试配置文件,或者通过点击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文件中。
-
测试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中的插件自动更新功能后完美解决。