数据集#persist()是终端操作吗?

时间:2017-03-01 14:58:36

标签: apache-spark apache-spark-dataset

Dataset被调用时,spark是否会实际缓存org.apache.spark.sql.Dataset#persist()?或者,当在count上调用某些终端操作(如Dataset)时,它会被懒惰地缓存。

1 个答案:

答案 0 :(得分:2)

因为Spark Dataset.persist中的所有缓存操作都是惰性的,并且只标记给定的缓存对象,如果它被评估过。

与RDD相比的主要区别在于评估难以推理。请参阅开发人员列表中的相关讨论:Will .count() always trigger an evaluation of each row?