首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

大数据技术之_28_电商推荐系统项目_02

如果实时推荐继续采用离线推荐 ALS 算法,由于 ALS 算法运行时间巨大(好几分钟甚至好十几分钟),不具有实时得到新推荐结果能力;并且由于算法本身使用是用户评分表,用户本次评分后只更新了总评分表一项...(用于建立 redis 和 mongo 连接),并在 OnlineRecommender 定义一些常量: src/main/scala/com.atguigu.online/OnlineRecommender.scala...import scala.collection.mutable.ArrayBuffer // 定义样例 // 连接助手对象(用于建立 redis 和 mongo 连接)并序列化 object ...// 因为 redis 操作返回是 java ,为了使用 map 操作需要引入转换   import scala.collection.JavaConversions._   /**     *...与 recentRecommends 有重复商品 productId ,recentRecommends productId 推荐优先级由于是上次实时推荐结果,于是将作废,被替换成代表了更新

4.4K21

大数据技术之_24_电影推荐系统项目_06_项目体系架构设计 + 工具环境搭建 + 创建项目并初始化业务数据 + 离线推荐服务建设 + 实时推荐服务建设 + 基于内容推荐服务建设

【实时推荐部分】   3、Flume 从综合业务服务运行日志读取日志更新,并将更新日志实时推送到 Kafka ;Kafka 在收到这些日志之后,通过 KafkaStream 程序对获取日志信息进行过滤处理.../**   * @param uri MongDB 连接   * @param db  MongDB  数据库   */ case class MongoConfig(uri: String, db...如果实时推荐继续采用离线推荐 ALS 算法,由于算法运行时间巨大,不具有实时得到新推荐结果能力;并且由于算法本身使用是评分表,用户本次评分后只更新了总评分表一项,使得算法运行后推荐结果与用户本次评分之前推荐结果基本没有多少差别...// 因为 redis 操作返回是 java ,为了使用 map 操作需要引入转换   import scala.collection.JavaConversions._   /**     *...与 recentRecommends 有重复电影 mid ,recentRecommends mid 推荐优先级由于是上次实时推荐结果,于是将作废,被替换成代表了更新 updatedRecommends

4.8K51
您找到你想要的搜索结果了吗?
是的
没有找到

restapi(4)- rest-mongo : MongoDB数据库前端httpserver

后台开发对每一个数据库表单使用统一标准增添一套新CRUD服务。希望如此能够提高开发效率,减少代码出错机会。 MongoDB是一种文件类型数据库,数据格式更加多样化。...客户端从后台下载就需要把bytes转换成UTF8字符就可以恢复文件内容了。 首先,我们先从Model开始,在scala里用case class来表示。...Model是MongoDB Document对应。在scala编程里我们是用case class 当作Document来操作。...所以id字段名称是指定,这点在设计表结构要注意。 如何测试一个httpserver还是比较头痛。用浏览器只能测试GET,其它POST,PUT,DELETE应该怎么测试?...() system.terminate() } } 下面是本次示范源代码: build.sbt name := "rest-mongo" version := "0.1" scalaVersion

1.9K20

Play For Scala 开发指南 - 第10章 MongoDB 开发

另外 Mongo Scala Driver 数据库操作默认返回 Observable 类型,如果你忘记了调用 toFuture 方法,或是没有消费返回数据,则数据库操作实际上并不会被执行,在开发很容易引入一些...作为约定,Model 使用 _id 字段作为唯一标识, 该字段同时也是 mongodb collection 默认主键。...} 由于这些隐式 Format 对象是在模型层包对象(package object)创建,所以使用时无需显式导入,编译器会自动加载。...: Mongo) extends AbstractController(cc) {} 模型和Collection 模型使用 @Entity 注解标注, 一个模型实例表示 mongodb collection...作为约定,模型使用 _id 字段作为唯一标识, 该字段同时也是 mongodb collection 默认主键。

1.5K10

大数据技术之_28_电商推荐系统项目_01

实时推荐服务:项目采用 Spark Streaming 作为实时推荐系统,通过接收 Kafka 缓存数据,通过设计推荐算法实现对实时推荐数据处理,并将结构合并更新到 MongoDB 数据库。...【实时推荐部分】   2、Flume 从综合业务服务运行日志读取日志更新,并将更新日志实时推送到 Kafka ;Kafka 在收到这些日志之后,通过 kafkaStream 程序对获取日志信息进行过滤处理...程序主体代码如下: DataLoader/src/main/scala/com.atguigu.recommerder/DataLoader.scala // 定义样例 case class Product...,方便重复调用(当多次调用对 MongoDB 存储或读写操作)     implicit val mongoConfig = MongoConfig(config("mongo.uri"), config...("mongo.db"))     // 将数据保存到 MongoDB      storeDataInMongDB(productDF, ratingDF)     // 关闭 Spark

2.9K30

restapi(6)- do it the functional way, 重温函数式编程

不知怎么搞,我尽然在这段代码中间使用了Await.result。从OOP角度分析这很容易理解,下一段程序需要上一段程序结果来继续运行。...逻辑思路上没问题,不过这样做法是典型行令式编程模式。在函数式编程模式里,阶段性运算结果是在包嵌在Monad。Monad本身只是一个运算计划,只有真正运算才能获取结果。...修改后源代码如下: MongoRepo.scala package com.datatech.rest.mongo import org.mongodb.scala._ import org.bson.conversions.Bson...import org.mongodb.scala.result._ import com.datatech.sdp.mongo.engine._ import MGOClasses._ import...._ import org.mongodb.scala.model.Filters._ import com.datatech.sdp.mongo.engine.MGOClasses._ import

93430

restapi(8)- restapi-sql:用户自主服务

但是在现实理想总是不如人意,本来想在一个规模较小公司展展拳脚,以为小公司会少点历史包袱,有利于全面技术改造。...但现实是:即使是小公司,一旦有个成熟产品,那么进行全面的技术更新基本上是不可能了,因为公司要生存,开发人员很难新旧技术之间随时切换。除非有狂热热情,员工怠慢甚至抵制情绪不容易解决。...然后是数据库连接,下面是可以使用sqlserverapplication.conf配置文件内容: # JDBC settings prod { db { h2 { driver...这个函数返回Source[R,Any],下面我们好好谈谈这个R:R是读结果,通常是某个或model,比如读取Person记录返回一组Person实例。这里有一种强类型感觉。...最后是put:这是为批次型事物处理设计。接受一条或者多条无参数sql指令,多条指令会在一个事物执行。

1.4K10

SDP(9):MongoDB-Scala - data access and modeling

分布式数据库有一套与传统观念不同数据模式,在设计库表结构必须从满足各种数据抽取需要为主要目的。...在使用MongoDB前我们必须熟悉它数据模式和设计理念:在大数据时代今天,数据产生和使用发生了质变化,传统关系数据库数据模式已经无法满足现代信息系统要求。...比如,在设计个人信息表要考虑有些人有两个地址,有些甚至没有地址,又有些有传真号,还有这个那个其它特点等等。在关系数据库模式设计我们必须作出取舍,牺牲一些属性。...但MongoDB文件数据库特点容许不同数据格式,能实现完整数据采集与储存。...再看看下面类型转换数据类型对应:  case class PO ( ponum: String, podate: java.util.Date

1.2K40

Akka-Cluster(2)- distributed pubsub mechanism 分布式发布订阅机制

具体使用方式是在集群所有节点部署ClusterSingletonManager,由集群leader节点选定其中一个节点并指示上面的ClusterSingletonManager运行一个cluster...从应用场景来说cluster singleton应该是某种pull模式应用:我们把singleton当作中央操作协调,比如说管理一个任务清单,多个ClusterSingletonProxy从任务清单获取...如果需要实现push模式任务派送:即由singleton主动通知集群里某种类型actor执行任务,那么通过ClusterSingletonProxy沟通就不适用了,使用pub/sub方式是一个可行解决方案...消息是由scalapb从.proto文件自动产生。...下面是这次讨论示范源代码: project/scalapb.sbt addSbtPlugin("com.thesamet" % "sbt-protoc" % "0.99.18") libraryDependencies

1.2K40

SDP(11):MongoDB-Engine功能实现

下面是具体功能实现代码:基本上是直接调用Mongo-scala对应函数,需要注意是java类型和scala类型之间相互转换: object MGOEngine { import MGOContext...下面我们来试运行这些函数,不过先关注一些细节:关于MongoDBDate,Blob,Array等类型在scala使用方法: type MGODate = java.util.Date def...None => println("no picture provided") } } 在上面的代码里我们使用了前面提供MongoDB数据类型读取帮助函数。...下面我们测试对poCollectionDocument进行查询,示范包括projection,sort,filter等: import org.mongodb.scala.model.Projections...下面是这次示范源代码: build.sbt name := "learn-mongo" version := "0.1" scalaVersion := "2.12.4" libraryDependencies

1K30

【MongoDB】MongoDB入门(一)基本操作和常用命令

当查询一个不存在 collection 也不会出错Mongo 会认为那是一个空 collection。...;“_id”是系统保留字段,但用户可以自己储存唯一性数据在字段。 客户端语法: show dbs // 列出所有数据库 use memo // 使用数据库 memo。...y from foo // 一些SQL不能做,MongoDB也可以做: db.foo.find({"address.city":"gz"}) // 搜索嵌套文档addresscity值为gz记录...db.foo.find({likes:"math"}) // 搜索数组 db.foo.ensureIndex({"address.city":1}) // 在嵌套文档字段上建索引 更新数据 db.foo.update...({},{}) //更新对象,第一个参数是查询对象,第二个是替代,可以在第二个对象里指定更新哪些字段,要使用 set。"

41151

MongoDB 3.0.6主,从,仲裁节点搭建

如果想创建一个数据库名称 use mydb 要检查当前选择数据库使用命令: db 创建数据库mydb 列表是不存在。...// no case // 即时加上了列筛选,_id也会返回;必须显式阻止_id返回 db.users.find({"age" : {"$gte" : 18, "$lte" : 30}}) select...,既包含"apple",又包含"banana"纪录 db.food.find({"fruit.2" : "peach"}) // 对数组查询, 字段fruit,第3个(从0开始)元素是peach...纪录 db.food.find({"fruit" : {"$size" : 3}}) // 对数组查询, 查询数组元素个数是3记录,$size前面无法和其他操作符复合使用 db.users.findOne...db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套元素是数组使用

1.3K10
领券