我的问题和其他关于堆栈溢出的问题没有什么不同,我需要知道数据是否已经被检索并存储在一个堆栈中,或者还没有发生
我正在做这样的事情
df1=spark.table("sourceDB.Table1")
df1.cache()
字符串
现在,你可能已经意识到,由于延迟执行,数据还没有从源表中读取。所以我需要一个表达式,在这里将结果表示为“False”。
过了一段时间,我正在做一些操作,需要从源代码中检索数据。
df1.groupBy("col3").agg(sum("col1").alias("sum_of_col1")).select("sum_of_col1","col3").filter("sum_of_col1 >= 100").show()
型
在这一点上,数据必须已经读取并存储在df1的缓存中。所以我需要在这里有一个表达式,在这一点上将结果表示为“True”。
有什么方法可以做到这一点吗?我相信df1.is_cached在这种情况下不会有帮助
2条答案
按热度按时间ee7vknir1#
也许这是有用的
1.如果您想检查是否已经在框架上触发了
cache/persist
,则可以使用cachemanager
进行确认,如下所示-字符串
2.如果你想检查数据是否在内存中,下面的方法可能会有帮助-
型
3.测试上述方法-
型
qyzbxkaa2#
pyspark版本(基于answer from @som)
字符串