package com.tuijian
import org.apache.spark.mllib.feature.Word2Vec
import org.apache.spark.sql.{SaveMode, SparkSession}
import org.jblas.DoubleMatrix
object HandleGood {
/***
* 每件商品和其它商品之间的差距(两个向量之间的余弦度数)
* 取出前10件商品
* @param args
*/
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("handle")
.master("local")
.getOrCreate()
val goodData = SqlUtil.read(spark, "goods")
val tagData = SqlUtil.read(spark, "good_tag")
// //两表结合在一起
// val goodTagData = goodData.join(tagData, "id")
//需要将标签转换为向量
val words = tagData.rdd.map(
tag => {
tag.getString(1).split("\\|").toBuffer
}
)
val wv = new Word2Vec()
wv.setMinCount(1)
wv.setVectorSize(3)
val model = wv.fit(words) //训练模型
import spark.implicits._
val goodTagRDD = goodData
.join(tagDa
实时推荐-3商品标签训练模型
最新推荐文章于 2023-03-11 23:03:41 发布