MapReduce处理数据(用户使用过的产品)
来源:互联网 发布:ssh2权限管理系统源码 编辑:程序博客网 时间:2024/04/30 04:36
数据格式如下:
{
"_id" : 1,}
"logId" : "078EF19407AC4798882A7588B358B517",
"logType" : 0,
"username" : "0_{2001",
"userIdentityIds" : -1,
"productId" : 5,
"version" : "11.0.4",
"versionVal" : NumberLong("110000000004"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.26",
"loginInIP" : "192.168.2.26",
"loginTime" : new Date("21/8/2014 09:36:38"),
"logoutTime" : new Date("21/8/2014 09:36:38"),
"addTime" : new Date("21/8/2014 09:36:38"),
"hardwareCodes" : ["dcc952a3855e0ca72e57c0632e0cd45e"],
"enterpriseId" : 0
/* 1 */
{
"_id" : 2,}
"logId" : "4cb2ca79-743b-4791-8afe-cb5441745240",
"logType" : 1,
"username" : "0_elaine_yong",
"userIdentityIds" : -1,
"productId" : 3,
"version" : "21.2.0",
"versionVal" : NumberLong("210000200000"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.22",
"loginInIP" : "192.168.2.22",
"loginTime" : new Date("21/8/2014 09:37:05"),
"logoutTime" : new Date("21/8/2014 09:37:05"),
"addTime" : new Date("21/8/2014 09:37:05"),
"hardwareCodes" : ["9290dc7e739cacad3460497fc0db1945"],
"enterpriseId" : 0
/* 2 */
{
"_id" : 3,}
"logId" : "4cb2ca79-743b-4791-8afe-cb5441745240",
"logType" : 1,
"username" : "0_elaine_yong",
"userIdentityIds" : -1,
"productId" : 3,
"version" : "21.2.0",
"versionVal" : NumberLong("210000200000"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.22",
"loginInIP" : "192.168.2.22",
"loginTime" : new Date("21/8/2014 09:37:17"),
"logoutTime" : new Date("21/8/2014 09:37:17"),
"addTime" : new Date("21/8/2014 09:37:17"),
"hardwareCodes" : ["9290dc7e739cacad3460497fc0db1945"],
"enterpriseId" : 0
/* 3 */
{
"_id" : 4,}
"logId" : "4cb2ca79-743b-4791-8afe-cb5441745240",
"logType" : 1,
"username" : "0_elaine_yong",
"userIdentityIds" : -1,
"productId" : 5,
"version" : "21.2.0",
"versionVal" : NumberLong("210000200000"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.22",
"loginInIP" : "192.168.2.22",
"loginTime" : new Date("21/8/2014 09:37:29"),
"logoutTime" : new Date("21/8/2014 09:37:29"),
"addTime" : new Date("21/8/2014 09:37:29"),
"hardwareCodes" : ["9290dc7e739cacad3460497fc0db1945"],
"enterpriseId" : 0
/* 4 */
{
"_id" : 5,}
"logId" : "078EF19407AC4798882A7588B358B517",
"logType" : 0,
"username" : "0_{2001",
"userIdentityIds" : -1,
"productId" : 2,
"version" : "11.0.4",
"versionVal" : NumberLong("110000000004"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.26",
"loginInIP" : "192.168.2.26",
"loginTime" : new Date("21/8/2014 09:40:27"),
"logoutTime" : new Date("21/8/2014 09:40:27"),
"addTime" : new Date("21/8/2014 09:40:27"),
"hardwareCodes" : ["dcc952a3855e0ca72e57c0632e0cd45e"],
"enterpriseId" : 0
/* 5 */
{
"_id" : 6,}
"logId" : "078EF19407AC4798882A7588B358B517",
"logType" : 0,
"username" : "0_{2001",
"userIdentityIds" : -1,
"productId" : 5,
"version" : "11.0.4",
"versionVal" : NumberLong("110000000004"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.26",
"loginInIP" : "192.168.2.26",
"loginTime" : new Date("21/8/2014 09:41:41"),
"logoutTime" : new Date("21/8/2014 09:41:41"),
"addTime" : new Date("21/8/2014 09:41:41"),
"hardwareCodes" : ["dcc952a3855e0ca72e57c0632e0cd45e"],
"enterpriseId" : 0
/* 6 */
{
"_id" : 7,}
"logId" : "078EF19407AC4798882A7588B358B517",
"logType" : 0,
"username" : "0_{2001",
"userIdentityIds" : -1,
"productId" : 11,
"version" : "11.0.4",
"versionVal" : NumberLong("110000000004"),
"lockNumber" : "91487400000009bc",
"isLegalCopy" : 1,
"provinceId" : -2,
"cityId" : -2,
"loginOutIP" : "192.168.2.26",
"loginInIP" : "192.168.2.26",
"loginTime" : new Date("21/8/2014 09:41:52"),
"logoutTime" : new Date("21/8/2014 09:41:52"),
"addTime" : new Date("21/8/2014 09:41:52"),
"hardwareCodes" : ["dcc952a3855e0ca72e57c0632e0cd45e"],
"enterpriseId" : 0
统计出每个用户使用过的产品,一个用户只能有一条数据,产品使用数组存储
要求增量处理,比如第一次执行处理数据到3条,那么条件则是_id>0并且_id<4
下次处理从4开始,_id>3并且<最大ID
db.testlogin.mapReduce(
function() {
var array = new Array();array.push(this.productId);
emit(
this.username,
{"username":this.username,"productIds": array}
);
},
function(key, values) {
//判断产品ID是否存在,存在则不添加
var checkProductIdExists = function(pid,pids){
var flag = false;
for(var j in pids){
if(pids[j] == pid){flag = true;break;}
}return flag;}
var array = new Array();
var reduced = {username:'', productIds:array};
for(var i in values){
var obj = values[i];for(var j in obj.productIds){if(!checkProductIdExists(obj.productIds[j],reduced.productIds)){reduced.productIds.push(obj.productIds[j]);reduced.username = values[i].username;}}
}
return reduced;
},
{);
out:{"reduce":"testloginMapReduce"},
query:{_id:{$gt: 0}},}
统计结果:
{
"_id" : "0_elaine_yong",
"value" : {
"username" : "0_elaine_yong",
"productIds" : [5.0, 3.0]
}
}
/* 1 */
{
"_id" : "0_{2001",
"value" : {
"username" : "0_{2001",
"productIds" : [2.0, 5.0, 11.0]
}
}
0 0
- MapReduce处理数据(用户使用过的产品)
- MapReduce处理数据(用户每周登录次数)
- 使用MapReduce处理Hbase数据
- 使用Hadoop的MapReduce与HDFS处理数据
- MapReduce中跨InputSplit数据的处理
- mapreduce处理数据倾斜的一些方法
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取到
- 使用事务与锁,实现一个用户取过的数据不被其他用户取
- 临沂汽车改灯网~日产逍客!
- 乐观的并发策略——基于CAS的自旋
- 京东邓正平:京东智能云
- 我读经典(1) 周鸿祎自述--我的互联网方法论
- HDU 4389 X mod f(x) 平方分割 数位DP
- MapReduce处理数据(用户使用过的产品)
- 使用终端命令 关闭Mac电脑开机启动音
- Oracle 游标使用全解
- dwr消息推送
- HTTP协议 (二) 基本认证
- 【读书笔记】抓取深圳或上海股市,或香港美国等有关股市某时间段内全部股票行情数据,进行主成分分析构造你个人的股市指数
- 牛人的面试经历
- myeclipse优化方案 myeclipse 10 优化
- 类与类之间的关系