# step1: 在conf中添加checkpoint的保存地址
val spark = SparkSession.builder
.appName(JobRegister.getJobName("xxx", s"xxxx"))
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
.config("spark.sql.broadcastTimeout", 3000)
.config("spark.sql.sources.partitionOverwriteMode", "dynamic")
.config("spark.checkpoint.dir", "/user/vc/projects_prod/checkpoint/data") # 配置路径
.enableHiveSupport()
.getOrCreate()
# step2: 保险期间,在引用spark时,再设置下:
spark.sparkContext.setCheckpointDir("/user/vc/projects_prod/checkpoint/data")
# step3: 在代码中添加checkpoint函数
val risk_msg = spark.sql(s"select * from temp.dwd_im_basic_info ")
.cache()
.checkpoint()
在 PyTorch 中,checkpoint() 和 cache() 都是模型优化中经常使用的函数,但它们的使用方式和作用不同。
checkpoint() 函数是一种优化方法,可以将模型的一部分计算推迟到后面执行,从而减少显存的占用,提高模型的训练速度。
而 cache() 函数是一种缓存方法,可以将模型的某些计算结果缓存下来,以便下次使用时可以直接调用,避免重复计算,提高模型的训练速度。
这两个函数的使用顺序取决于具体的场景。
如果你希望先缓存模型的某些计算结果,再对模型进行优化,那么就应该先使用 cache() 函数,再使用 checkpoint() 函数。
如果你希望先对模型进行优化保存,再将优化后的结果缓存下来,那么就应该先使用 checkpoint() 函数,再使用 cache() 函数。