- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试执行来自 here 的 DISTINCT reduce 时,出现错误。我已经在啤酒 sample 桶上重现了这个错误,所以这应该很容易重现。我没有在 mapreduce_errors.txt
文件中看到任何错误,也没有看到任何会导致我在其他文件中出现任何错误的错误。 (如果您希望我搜索或发布其他文件的片段,请询问)。
在 Windows 2008 R2 上运行 couchbase enterprise 4 beta(这也发生在 3.0.1 社区版上。)。
这是我的 map 功能(使用直接随沙发底座提供的啤酒 sample 桶)。
function(doc, meta) {
switch(doc.type) {
case "brewery":
emit(meta.id);
break;
}
}
这是我的归约函数:
function(keys, values, rereduce) {
return keys.filter(function (e, i, arr) {
return arr.lastIndexOf(e) === i;
});
}
这是错误:
reason: error (Reducer: )
如果有帮助的话,还有查看页面的图片:/image/4qpZ5.png
最佳答案
问题出在您的自定义归约函数中:当它作为重新归约的一部分被调用时,您没有处理这种情况。
The base format of the reduce() function is as follows:
function(key, values, rereduce) {
...
return retval;
}The reduce function is supplied three arguments:
key
: The key is the unique key derived from the map() function and the group_level parameter.
values
: The values argument is an array of all of the values that match a particular key. For example, if the same key is output three times, data will be an array of three items containing, with each item containing the value output by the emit() function.
rereduce
: The rereduce indicates whether the function is being called as part of a re-reduce, that is, the reduce function being called again to further reduce the input data.When
rereduce
is false:
The supplied
key
argument will be an array where the first argument is thekey
as emitted by the map function, and theid
is the document ID that generated the key.The values is an array of values where each element of the array matches the corresponding element within the array of
keys
.When
rereduce
is true:
key
will be null.
values
will be an array of values as returned by a previousreduce()
function. The function should return the reduced version of the information by calling the return() function. The format of the return value should match the format required for the specified key.
粗体格式是我的,突出显示的单词非常重要:您应该考虑到有时您会收到值为 null
的 keys
参数。
根据文档,您应该在 reduce()
函数中处理 rereduce
为 true
的情况,并且您应该知道在这种情况下,keys
将为 null
。对于您的 reduce()
函数,您可以执行以下操作:
function(keys, values, rereduce) {
if (rereduce) {
var result = [];
for (var i = 0; i < values.length; i++) {
var distinct = values[i];
for (var j = 0; j < distinct.length; j++) {
result.push(distinct[j]);
}
}
return result.filter(function (e, i, arr) {
return arr.lastIndexOf(e) === i;
});
}
return keys.filter(function (e, i, arr) {
return arr.lastIndexOf(e) === i;
});
}
在这里,我首先处理重新减少阶段。为此,我将在 values
参数中接收到的数组数组进行展平,然后删除合并后可能出现的重复项。
然后是您的原始代码,它返回没有重复的 keys
参数数组。
为了测试这个 reduce()
函数是否确实有效,我使用了以下 map()
函数:
function(doc, meta) {
switch(doc.type) {
case "brewery":
emit(meta.id, null);
emit(meta.id, null);
break;
}
}
这会故意生成重复项,然后由 reduce()
函数删除。
关于couchbase - 错误( reducer : ) when attempting to do distinct reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31152576/
尝试从对话框中的 EditText 获取 Edit Text 的值,但一次又一次地出现此错误 Attempt to invoke virtual method 'android.text.Editab
最近尝试了一下最新的Laravel(6.4)。正在尝试实现基于 API 的简单登录功能。没有使用 Passport 或 Tymon 的 JWT 等任何软件包。我使用了非常基本的身份验证(只需在用户表中
最近尝试了一下最新的Laravel(6.4)。正在尝试实现基于 API 的简单登录功能。没有使用 Passport 或 Tymon 的 JWT 等任何软件包。我使用了非常基本的身份验证(只需在用户表中
我在我的 PC 上运行 cifar10 网络,在完成训练和运行评估脚本后出现以下错误: 2016-06-01 14:37:14.238317: precision @ 1 = 0.000 Traceb
我正在使用 ng2-toastr 并收到以下错误 https://www.npmjs.com/package/ng2-toastr Attempt to use a destroyed view: d
env file:环境文件: APP_ENV=localAPP_DEBUG=trueAPP_KEY= ...........DB_HOST=srv3.linuxisrael.co.ilDB_D
当我登录管理员时,我正在尝试对 api 进行多重保护身份验证,我得到了跟随错误 BadMethodCallException Method Illuminate\Auth\Req uestGuard:
我开始在 Lua 中进行编程,并在运行脚本时出现此错误: attempt to index upvalue 'base' (a function value) 这可能是因为我还没有掌握一些非常基本的东
我试图在 Oozie 工作流中聚合一些数据。但是聚合步骤失败。 我在日志中发现了两个兴趣点:第一个是一个似乎重复出现的错误(?): 容器完成后,它会被杀死,但会以非零退出代码 143 退出。 它完成了
我的问题是当我调用函数时: [self performSegueWithIdentifier: @"FinalPlayPT" sender: self]; 它有效,但我有这个警告: Warning:
项目背景 项目整体采用的是springboot+mybatis 方式。有一次做数据查询的时候。console突然报:DataIntegrityViolationException: Error att
我在使用 Jobs 发送电子邮件的 Ubuntu Server 上设置了 Laravel 项目。 下面是我在 中的 laravel-worker 文件/etc/supervisor/laravel-w
尝试运行我的 React 应用程序时收到以下错误: ./src/components/App/App.js Attempted import error: 'combineReducers' is n
我的编码功能是这样的: fn encode_login(packet: &str) { let bytes = packet.as_bytes(); for (i, &element)
如果一个版本号大于另一个版本号,我的 msbuild 需要采取有条件的操作。我尝试像下面这样编写代码,但发现出现错误(也在下面)。我哪里出错了?
我是 Lua 的新手,并试图让事情在我的脑海中进行排序。我试过这个代码: function newCarousel(images) local slideToImage = function(
我正在使用 entrust用于在 Laravel 5.3 中管理基于角色的权限,并自然地为不同的用户类型使用手动/自定义登录。 Auth::attempt()可以吗?处理外表关系?基本上,我想做这样的
我谷歌了一遍又一遍,但没有对我有用的信息。 情况是这样的:1.产品有 active 。2.我通过测试账号来测试我的apk。3.我已经上传了一整天的apk。 但是当我想为应用程序中的项目付款时,goog
我正在尝试使用 groovy 解析日期字符串,但遇到了问题。这是字符串的样子和不起作用的逻辑。 def dateString = "2017-01-01T12:00:00Z" def date = D
我正在使用 ParseFacebookUtils 从 Facebook 登录我的应用。 LoginActivity 的 onCreate: protected void onCreate(Bundle
我是一名优秀的程序员,十分优秀!