Apache spark Spark-减少数据帧大小;缓存它

Apache spark Spark-减少数据帧大小;缓存它,apache-spark,spark-dataframe,databricks,Apache Spark,Spark Dataframe,Databricks,我在Spark中有一个非常大的数据帧,对它进行操作需要很长时间 它有10万行 我想对其进行采样,以便更快地进行测试,因此我正在尝试: val redux = df.limit(1000) redux.cache 我认为这将保持一个只有1K行的数据帧 例如,运行redux.count仍然需要很长时间(3分钟) 我在一个8工作盒上运行它,带有6GB的RAM(来自DataBricks) 我做错什么了吗 谢谢 答案是: 缓存是惰性执行的,因此即使第一次“计数”操作需要一些时间,后续操作也会更快 T.G

我在Spark中有一个非常大的数据帧,对它进行操作需要很长时间

它有10万行

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

val redux = df.limit(1000)
redux.cache
我认为这将保持一个只有1K行的数据帧

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

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

我做错什么了吗

谢谢

答案是:

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


T.Gaweda的积分

请再次运行此
redux.count
并观察它是否更快-应该更快;)缓存是惰性的,它将在执行第一个操作时完成是!谢谢在第一次行动之后,其他行动进行得相当快=DIt通常用于ML算法:)缓存输入数据,然后计算simple
count()
以执行缓存。接下来,当执行alorithm的迭代部分时,它可以处理已经缓存的数据,而且速度要快得多:)