用于在内存上加载镶木地板文件的火花函数



我使用 SparkSQL 从 Parquet 文件加载了 rdd

data_rdd = sqlContext.read.parquet(filename).rdd

我注意到,一旦有一些聚合函数触发 spark 作业,就会执行从文件操作中实际读取。

我需要测量作业的计算时间,而无需从文件中读取数据。(即与输入相同的rdd(数据帧(已经存在,因为它是从sparkSQL创建的(

是否有任何函数可以触发在执行程序内存上加载文件?

我已经尝试过.cache()但似乎它仍在触发读取操作作为其工作的一部分。

Spark 很懒惰,只会做它需要的计算。 您可以.cache()它,然后.count()所有行:

data_rdd = sqlContext.read.parquet(filename).rdd
data_rdd.cache()
data_rdd.count()

接下来的任何一组计算都将从data_rdd的缓存状态开始,因为我们使用count()读取整个表。

最新更新