Spark功能用于在内存上加载镶木地板文件

时间:2017-08-20 01:55:15

标签: apache-spark pyspark hdfs rdd

我使用SparkSQL

从Parquet文件加载了rdd

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

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

我需要在没有时间从文件中读取数据的情况下测量作业的计算时间。 (即与输入rdd(dataframe)相同,因为它是从sparkSQL创建的)

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

我已经尝试.cache(),但似乎它仍在触发阅读操作,这是其工作的一部分。

1 个答案:

答案 0 :(得分:1)

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

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

以后的任何计算都将从data_rdd的缓存状态开始,因为我们使用count()读取了整个表格。