apache-spark - 如何以编程方式获取有关 PySpark 中执行程序的信息
问题描述
当一个新的 pyspark 应用程序启动时,它会创建一个漂亮的 Web UI,其中包含 Jobs、Stages、Executors 等选项卡。如果我转到 Executors 选项卡,我可以看到 executors 的完整列表以及每个 executor 的一些信息 - 例如核心数,使用的存储内存与总内存等。
我的问题是我是否可以以某种方式从应用程序本身以编程方式访问相同的信息(或至少部分信息),例如看起来像的东西spark.sparkContext.<function_name_to_get_info_about_executors>()
?
我找到了一些以类似于 webUI 的方式进行 url 请求的解决方法,但我认为也许我错过了一个更简单的解决方案。
我正在使用 Spark 3.0.0
解决方案
到目前为止,我发现的唯一方法对我来说似乎很棘手,并且涉及抓取与 Web UI 查询相同的 url,即这样做:
import urllib.request
import json
sc = spark.sparkContext
u = sc.uiWebUrl + '/api/v1/applications/' + sc.applicationId + '/allexecutors'
with urllib.request.urlopen(u) as url:
executors_data = json.loads(url.read().decode())
推荐阅读
- javascript - Scroll Text in Jquery Autocomplete
- authentication - Keycloak 不刷新令牌
- laravel - I'm Getting this Trojan Detection Error When Installing Laravel
- python - Spark for python - Null when cast it from string to decimals(36,12)
- javascript - 从 a 中获取值
- ,
- 树格式
- c# - MVC C# 网站 + WordPress 在同一个目录
- wavefront - OBJ Wavefront 文件:由于面顶点顺序引起的问题
- docker - 如何将多个容器的写入同步到集群上的同一卷?
- google-cloud-firestore - 以编程方式创建firestore触发器?
- sql - SQL - 在所有左连接时添加新表连接 - 初学者