- 简介
- 依赖设置
- 应用部署
简介
在实现基于spark mllib的ALS协同滤波例子:
Spark机器学习_ (南非) 彭特里思 (nick pentreath)(著) 蔡立宇;黄章帅; 周济民(译) 人民邮电出版社 2015-09-01 P72
其中使用了jblas包的接口,在我的应用中也使用了这个包的接口
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.Rating
//依赖jblas包
import org.jblas.DoubleMatrix
object recommendation {
def main(args:Array[String]): Unit ={
...
println( cosineSimilarity(itemVector, itemVector) )
}
//基于jblas实现的相似度计算函数
def cosineSimilarity(vec1: DoubleMatrix, vec2: DoubleMatrix): Double = {
vec1.dot(vec2) / (vec1.norm2() * vec2.norm2())
}
}
依赖设置
虽然spark是基于jblas包进行了封装,但是并并没将jblas包原有的接口开放出来,因此需要import jblas包。但是运行环境并没有这个包,所以需要添加这个依赖
- 下载编译好jblas包(jblas-1.2.4.jar):http://jblas.org/
- 添加依赖设置
在IDEA 中添加依赖包
- 编译:直接编译就行
应用部署
将应用(recommendation_mllib.jar)和该依赖包上传后,执行以下脚本运行
spark-submit --master local --name test_spark --driver-memory 1g --executor-memory 1G --num-executors 1 --executor-cores 1 --jars [path]/jblas-1.2.4.jar --class com._21cn.zengzhj.recommendation [path]/recommendation_mllib.jar
时间: 2024-11-05 20:37:16