Spark - 减少数据框大小并捕获它
Posted
技术标签:
【中文标题】Spark - 减少数据框大小并捕获它【英文标题】:Spark - reducing dataframe size & caching it 【发布时间】:2016-10-19 20:35:03 【问题描述】:我在 Spark 中有一个非常大的 DataFrame,对其进行操作需要很长时间。
它有 10M 行。
我想对其进行采样,以便更快地进行测试,所以我正在尝试:
val redux = df.limit(1000)
redux.cache
我认为这会保留一个只有 1K 行的数据帧。
但例如运行redux.count
仍然需要很长时间(3 分钟)。
我在一个 8 个工作盒和 6 GB RAM(来自 DataBricks)上运行它。
我做错了吗?
谢谢!
【问题讨论】:
请再次运行redux.count
并观察它是否更快 - 应该是 ;) 缓存是惰性的,它将在执行第一个操作时完成
是的!谢谢。在第一个动作之后,其他动作运行得非常快。 =D
【参考方案1】:
答案是:
缓存是惰性执行的,因此即使第一个“计数”操作会花费一些时间,但后续操作会更快。
感谢 T. Gaweda
【讨论】:
常用于 ML 算法 :) 缓存输入数据,然后计算简单的count()
进行缓存。接下来,当执行算法的迭代部分时,它适用于已经缓存的数据并且速度更快:)以上是关于Spark - 减少数据框大小并捕获它的主要内容,如果未能解决你的问题,请参考以下文章