持久化算子

3年前 (2020-03-13) 1300次浏览 已收录 0个评论
package wordcount
import org.apache.spark.SparkConf
/*持久化算子(单位是partition)
 * cache()默认将RDD中的数据存在内存中,懒执行算子
 * 
 * 
 *persist() 可以手动的指定持久化级别,懒执行
 * 
 * 
 * checkpoint
 */
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.storage.StorageLevel

object wordfcount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local").setAppName("count")
    val sc=new SparkContext(conf)
    
    
    sc.setCheckpointDir("./checkpoint")//checkpoint保存路径
    val lines:RDD[String]=sc.textFile("./words")
    lines.checkpoint()
    
//    lines.cache()
    
    //lines.persist(StorageLevel.MEMORY_ONLY)//级别
    
    val result1=lines.count();//触发cache()持久化算子
    //result1来源于磁盘
    
    val result2=lines.count();
    //result2已经来源于了内存

    sc.stop()
  }

}

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:持久化算子
喜欢 (0)

您必须 登录 才能发表评论!