【发布时间】:2013-04-03 17:28:37
【问题描述】:
我在这里感到困惑的主要事情(我认为)是 qfun 的参数应该是什么以及返回值应该是什么。 README 基本上没有说明这一点,它给出的示例丢弃了第二个和第三个参数。
现在我只是想理解这些论点,并没有将 Riak 用于任何实际操作。最终,我将尝试用它重建我们的(缓慢的、基于 MySQL 的)财务报告系统。所以在这里忽略我的目标毫无意义,为什么下面给我一个badfun 异常?
数据只是名称和年龄的元组(对),键是名称。在从 Erlang 控制台插入数据之前,我没有对 JSON 等进行任何转换。
现在有一些 {Name, Age} 对存储在 <<"people">> 中,我想使用 MapReduce(除了了解“如何”之外没有其他原因)来取回值,在第一次使用时保持不变。
riakc_pb_socket:mapred(
Pid, <<"people">>,
[{map, {qfun, fun(Obj, _, _) -> [Obj] end}, none, true}]).
不过,这让我很不开心:
{error,<<"{\"phase\":0,\"error\":\"{badfun,#Fun<erl_eval.18.17052888>}\",\"input\":\"{ok,{r_object,<<\\\"people\\\">>,<<\\\"elaine\\\">"...>>}
我如何通过我的地图函数原封不动地传递数据?有没有比 README 更好的 Erlang 客户端文档?该自述文件似乎假设您已经知道输入是什么。
【问题讨论】: