如何在本地模式下通过Python脚本查看pyspark WEB UI
本地local模式下Python脚本访问PySpark WEB UI方法
基础操作步骤
- 第一步:创建SparkSession时可按需指定UI端口(默认端口为4040,端口占用时会自动顺延为4041、4042等)
示例代码:from pyspark.sql import SparkSession import time # 初始化SparkSession,可自定义UI端口 spark = SparkSession.builder \ .appName("local_ui_test") \ .master("local[*]") \ .config("spark.ui.port", "4040") \ .getOrCreate() - 第二步:获取UI访问地址,直接打印SparkContext内置的UI地址属性即可,无需手动拼接
示例代码:ui_url = spark.sparkContext.uiWebUrl print(f"PySpark WEB UI 访问地址:{ui_url}") - 第三步:保持脚本运行状态即可访问UI,PySpark的UI仅在程序运行、SparkSession未销毁时可访问,如果需要长时间停留查看,可以在脚本末尾添加阻塞逻辑,示例:
# 方法1:等待手动输入回车后再结束程序 input("按回车结束程序并关闭UI:") # 方法2:固定休眠一段时间后自动结束 # time.sleep(300) # 休眠300秒,5分钟后自动关闭 spark.stop()
常见注意事项
- 如果需要查看已经运行结束的任务的UI数据,需要提前开启事件日志配置:
后续启动Spark历史服务器即可读取日志查看历史任务UI。spark = SparkSession.builder \ .appName("local_ui_test") \ .master("local[*]") \ .config("spark.eventLog.enabled", "true") \ .config("spark.eventLog.dir", "file:///本地文件夹绝对路径") \ .getOrCreate() - 本地防火墙如果拦截对应端口,需要先放行端口才能正常访问。
内容的提问来源于stack exchange,提问作者VectorXY
相关产品推荐
相关产品推荐

