mongodb的MapReduce幂等性

2023-11-11

习惯用MapReduce来做mongodb的聚合,这一次遇到一点小问题。
原数据如下:


使用一个简单的MapReduce来验证一下数据

map=function (){
    emit({clientKey:this.clientKey},{dtime:this.dtime,itime:this.itime,rtime:this.rtime,stime:this.stime})
}
reduce=function (key,values){
    return {v:values};
}
db.u2d2i2r2s_log.mapReduce(map,reduce,{out:"mr2"})


运行之后的数据如下:


value里面包含了多层v

这是为什么呢?

官方文档: http://docs.mongodb.org/manual/reference/method/db.collection.mapReduce/#db.collection.mapReduce

这段话的意思是,reduce函数有可能在执行一个任务是可能会被调用多次,而不是我们理解的传统的方法中,一次任务只调用一次,所以,reduce函数必须是幂等的。简单来说,就是reduce函数中接收的value参数的形式,必须和reduce函数返回的结果value的形式一致。

所以,reduce函数必须幂等。

参考博客:http://gong1208.iteye.com/blog/1841640




  • 大小: 26.6 KB
  • 大小: 37 KB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongodb的MapReduce幂等性 的相关文章

  • STL之Set:Set的基本用法

    set集合容器实现了红黑树 Red Black Tree 的平衡二叉检索树的的数据结构 在插入元素时 它会自动调整二叉树的排列 把该元素放到适当的位置 以确保每个子树根节点的键值大于左子树所有节点的键值 而小于右子树所有节点的键值 另外 还
  • 【51nod】1381 硬币游戏

    硬币游戏 Link 解题思路 所有情况都可以平移为与平行线相切的情况 则期望为 2 n 2n 2n 若硬币上下都与平行线相切 那么期望为 2 n
  • Java根据身份证号计算年龄

    可以使用Java中的SimpleDateFormat类将身份证号中的出生日期解析为日期类型 然后使用ChronoUnit类计算出生日期和当前日期之间的时间差 最后除以365即可得到年龄 代码示例如下 String idCard xxxxxx
  • matlab不存在字段detials,matlab - MATLAB GUIDE错误:引用不存在的字段 - 堆栈内存溢出...

    在Matlab的GUIDE中 我试图在首次使用choice data button选中该文件的标题时动态更改带有该文件的标题的弹出菜单文本 但是 这给了我一个错误 即group variable popupmenu是一个不存在的字段 这篇文
  • 使用feign调用GET请求时使用实体对象参数

    在平时使用过程中 GET请求是可以直接使用实体参数的 但是当使用feign调用时 会报错 这时了解到使用feign调用时 如果是实体对象 会将参数写入body 而GET请求是不使用body的 这种情况应该怎么处理呢 我有三种办法 1 修改服
  • BigDecimal除法运算报错 Non-terminating decimal expansion; no exact representable decimal result.

    本文相关文章 BigDecimal类型比较大小 BigDecilmal类型加减乘除及四舍五入方法 原因是因为做除法运算的时候 得到的结果为无限循环小数 像下面的代码 我打算将1除以3 再乘100的结果 保留两位小数 但是 1除以3得到的结果
  • python基础常见的字符串格式写法以及字符串基础练习题及常见操作知识

    字符串格式化 格式化一 s 字符串占位符 d 整数占位符 u 无符号整形 f 浮点数字 格式化二 name 小帅 age 18 print 格式化方式一 欢迎大帅比 name 工作年限 str age print 格式化方式一 欢迎大帅比
  • 如何解决vue项目打包上线chunk-vendors.js文件过大?以及TypeError: Cannot read property ‘tapPromise‘ of undefined报错

    最近做一个vue项目遇到了一个问题 项目打包上线发现chunk vendors js文件也太大了点 第一次加载页面需要将近30s 这肯定是无法容忍的 于是 调研 了一番 记录下解决方法 因app首页加载不流畅 于是去检查首页加载项的耗时 最
  • 实现音乐播放器,多线程处理进度条

    protected void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout activity mai
  • STM32F103c8t6+ESP8266(esp-01s)+MQTT固件+HAL库 连接阿里云(最详细+可移植)教程

    文章目录 概要 一 MQTT固件 二 阿里云账号注册 三 stm32f103的配置 三 esp8266的接收和发送 1 printf 2 串口2的DMA接收中断 3 esp8266的函数方法 四 连接阿里云 五 数据上报和数据解析 1 发送
  • Windows子系统的安装与使用

    引言 好久没有更新技术博客了 这段时间一直在学习新的知识 涉足大数据技术领域 最近有一些收获 来和大家分享一下 笔者一直用的是windows系统的电脑 但是有时候又需要用到linux系统 对此有3种方案可以实现 电脑安装双系统 安装虚拟机
  • 记录一下kibana启动连接报错问题(kibana server is not ready yet)

    记录一下kibana启动连接报错问题 kibana server is not ready yet 今天启动kibana出现该问题 先去看了看是否是elasticsearch连接出错 启动了容器 docker start elasticse
  • python错误与异常

    一 错误 1 语法错误 num 1 if num gt 1 print num gt 1 系统报错提示 SyntaxError expected 2 逻辑错误 编写业务逻辑错误 3 系统错误 二 异常 1 程序执行过程中出现的未知错误 2
  • 1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 如果我们先把 4 个数字按非递增排序 再按非递减排序 然后用第 1 个数字减第 2 个数字 将得到一个新的数字 一直重复这样做 我们很快会停在有 数字黑洞 之称的 6174 这个神奇的数字也叫
  • 回文质数Prime Palindromes

    题目描述 因为 151 既是一个质数又是一个回文数 从左到右和从右到左是看一样的 所以 151 是回文质数 写一个程序来找出范围 a b 一亿 间的所有回文质数 输入输出格式 输入格式 第 1 行 二个整数 a 和 b 输出格式 输出一个回
  • Locust压力测试使用总结

    上次做接口压力测试前一直研究使用jmeter 本以为可以拿来使用了 但是真正进行并发接口时 发现jmeter在单机下并发1000个时 台式电脑单机资源早就被使用完 整个jmeter卡得死死的 结果那晚使用jmeter并发失败 幸好之前也准备
  • FFmpeg学习笔记--视频传输的基本概念

    目录 1 容器 container 和文件 file 2 媒体流 stream 3 数据帧 frame 和数据包 packet 4 编解码器 Codec 5 复用 mux 6 解复用 demux 7 码率 bps 和帧率 fps 8 ffm
  • 【Android -- 写作工具】Markdown 代码块

    1 前言 关于代码块 Markdown 作者给出的定义如下 预格式化代码块主要用于在 Markdown 文档中显示源代码风格的内容 相比普通的文本段落 代码块可以保留文字内容的多行换行 缩进等格式 在 Markdown 文档中生成代码块 需
  • Numpy中的(一维)数组和(行列)向量

    Numpy中的 一维 数组和 行列 向量 随笔记录 Numpy的数组和行列向量的区别 随笔记录 Numpy的数组和行列向量的区别 今天做sklearn的datasets diabetes 的实验 做了个操作 diabetes是一个442 1
  • 【FPGA的基础快速入门17------频率计】

    FPGA的基础学习 频率计 频率计简介 等精度频率计 频率计简介 频率计又称为频率计数器 是一种专门对被测信号频率进行测量的电子测量仪器 计数法 直接计数单位时间内被测信号的脉冲数 这种方法测量精度高 速度快 适合不同频率 不同精确度测频的

随机推荐