我打算在Spark中将一些数据帧/表保存到缓存中。我想知道缓存了多少个数据帧/表?
答案 0 :(得分:1)
你可以按照Brian的说法去做。根据Pyspark,它没有像Scala API那样的“sc.getPersistentRDDs
”方法。
您可以跟踪问题here
答案 1 :(得分:0)
可以通过Spark UI的存储选项卡或REST API查看缓存的RDD / Dataframe的详细信息。
答案 2 :(得分:0)
您可以在pySpark中调用基础Java对象
[{
"name": s.name(),
"memSize_MB": float(s.memSize())/ 2**20 ,
"memSize_GB": float(s.memSize())/ 2**30,
"diskSize_MB": float(s.diskSize())/ 2**20,
"diskSize_GB": float(s.diskSize())/ 2**30,
"numPartitions": s.numPartitions(),
"numCachedPartitions": s.numCachedPartitions(),
"callSite": s.callSite(),
"externalBlockStoreSize": s.externalBlockStoreSize(),
"id": s.id(),
"isCached": s.isCached(),
"parentIds": s.parentIds(),
"scope": s.scope(),
"storageLevel": s.storageLevel(),
"toString": s.toString()
} for s in sc._jsc.sc().getRDDStorageInfo()]
有关更多信息,请参见Spark Java Docs。