1

我在 Spark 中有一个非常大的 DataFrame,对其进行操作需要很长时间。

它有 10M 行。

我想对其进行采样,以便更快地进行测试,所以我正在尝试:

val redux = df.limit(1000)
redux.cache

我认为这将保留一个只有 1K 行的数据框。

但是redux.count例如运行仍然需要很长时间(3分钟)。

我在带有 6 GB RAM(来自 DataBricks)的 8 个工作盒上运行它。

难道我做错了什么?

谢谢!

4

1 回答 1

2

答案是:

缓存是惰性执行的,因此即使第一个“计数”操作需要一些时间,后续操作也会更快。

归功于 T. Gaweda

于 2016-10-19T20:47:43.540 回答