Mar*_*icz 1 python apache-spark rdd pyspark
在PySparkShell 应用程序 UI ([server]:8088) 的“存储”选项卡上,我可以看到有关我正在使用的 RDD 的信息。其中一列是Fraction Cached。
我如何以编程方式检索该百分比?
我可以用来getStorageLevel()获取一些有关 RDD 缓存的信息,但不能获取Fraction Cached 的信息。
需要我自己计算吗?
SparkContext.getRDDStorageInfo可能就是您正在寻找的东西。它返回一个Array提供RDDInfo以下信息的信息:
它没有直接暴露在 PySpark 中,所以你必须有点创意:
from operator import truediv
storage_info = sc._jsc.sc().getRDDStorageInfo()
[{
"memSize": s.memSize(),
"numPartitions": s.numPartitions(),
"numCachedPartitions": s.numCachedPartitions(),
"fractionCached": truediv(s.numCachedPartitions(), s.numPartitions())
} for s in storage_info]
Run Code Online (Sandbox Code Playgroud)
如果您有权访问REST API,您当然可以直接使用它:
import requests
url = "http://{0}:{1}/api/v1/applications/{2}/storage/rdd/".format(
host, port, sc.applicationId
)
[r.json() for r in [
requests.get("{0}{1}".format(url, rdd.get("id"))) for
rdd in requests.get(url).json()
] if r.status_code == 200]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |