如何检查Spark RDD是否在内存中?
How to check if Spark RDD is in memory?
我有一个 org.apache.spark.rdd.RDD[MyClass] 的实例。
如何以编程方式检查实例是否为 persist\inmemory?
你想要RDD.getStorageLevel
。如果为空,它将 return StorageLevel.None
。然而,这只是在它被标记为缓存或不缓存时。如果你想要实际状态,你可以使用开发人员 api sc.getRDDStorageInfo
或 sc.getPersistentRDD
您可以调用rdd.getStorageLevel.useMemory来检查它是否在内存中,如下所示:
scala> myrdd.getStorageLevel.useMemory
res3: Boolean = false
scala> myrdd.cache()
res4: myrdd.type = MapPartitionsRDD[2] at filter at <console>:29
scala> myrdd.getStorageLevel.useMemory
res5: Boolean = true
我有一个 org.apache.spark.rdd.RDD[MyClass] 的实例。 如何以编程方式检查实例是否为 persist\inmemory?
你想要RDD.getStorageLevel
。如果为空,它将 return StorageLevel.None
。然而,这只是在它被标记为缓存或不缓存时。如果你想要实际状态,你可以使用开发人员 api sc.getRDDStorageInfo
或 sc.getPersistentRDD
您可以调用rdd.getStorageLevel.useMemory来检查它是否在内存中,如下所示:
scala> myrdd.getStorageLevel.useMemory
res3: Boolean = false
scala> myrdd.cache()
res4: myrdd.type = MapPartitionsRDD[2] at filter at <console>:29
scala> myrdd.getStorageLevel.useMemory
res5: Boolean = true