内容简介:机器学习模型的训练和预测经常是在不同的时间点进行,在工程实现中,一般训练和预测都是在不同的子工程里面进行,训练子工程训练模型后存储到hive,之后预测子工程项目再将模型重hive中load出来进行预测1.模型存储到hive存储很简单,将要存储的模型调用如下spark的序列化方法def serialize(spark: SparkSession)序列化后再转换拼装成sql,然后执行 spark.sql(insertSQL)即可,如下
机器学习模型的训练和预测经常是在不同的时间点进行,在工程实现中,一般训练和预测都是在不同的子工程里面进行,训练子工程训练模型后存储到hive,之后预测子工程项目再将模型重hive中load出来进行预测
1.模型存储到hive
存储很简单,将要存储的模型调用如下spark的序列化方法def serialize(spark: SparkSession)序列化后再转换拼装成sql,然后执行 spark.sql(insertSQL)即可,如下
case class ModleToHive(modelBizType: String, data: String) def save(modelUID: String): Unit = { val instance = ModleToHive( modelUID, modelBizType, model.serialize(spark) ) val instDf = Seq(instance).toDF() instDf.createOrReplaceTempView("model") var sqlString = s"insert into modelTable select modelUID as modelUID, modelBizType as modelBizType, data as saved_model" sqlString = sqlString + " from model " spark.sql(sqlString).collect()
这样模型就存储到hive了
2.从hive仓库load模型并反序列化
val sqlString = s"select saved_model from modelTable where modelUID=modelUID " val modelHexBinary = spark.sql(sqlString).first() val ser = new KryoSerializer(sparkConf).newInstance() val byteBuffer = ByteBuffer.wrap(DatatypeConverter.parseHexBinary(modelHexBinary.getString(0))) ser.deserialize[T](byteBuffer)
这样模型就又反序列化出来了,可用于预测了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms for Image Processing and Computer Vision
Parker, J. R. / 2010-12 / 687.00元
A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing with......一起来看看 《Algorithms for Image Processing and Computer Vision》 这本书的介绍吧!