我在Spark中有一个非常大的DataFrame,对它进行操作需要很长时间。
有10M行
我想对它进行采样,这样我就可以更快地测试东西,所以我正在尝试:
val redux = df.limit(1000)
redux.cache
我认为这将持久化只有1K行的数据帧。
但是以运行redux.count
为例,仍然需要很长时间(3分钟)。
我在一个8个worker box上运行这个w/6 GB RAM(来自DataBricks)。
我做错了什么吗?
谢谢!
答案是:
缓存是惰性执行的,所以即使第一个"计数"操作需要一些时间,后续操作将会更快。
感谢T. Gaweda