我对这里(我认为)感到困惑的主要问题是qfun的参数应该是什么以及返回值应该是什么。 README基本上没有说这个,它给出的例子抛弃了第二和第三个参数。关于Riak + Erlang的riakc客户端中的MapReduce完全困惑
现在我只是试图理解参数,并没有使用任何实际的Riak。最终,我将试图用它重建我们的(基于MySQL的慢速)财务报告系统。所以在这里忽略我的目标毫无意义,为什么以下给我一个badfun
异常?
数据只是名称和年龄的元组(对),其中的键是名称。在从Erlang控制台插入数据之前,我没有对JSON进行任何转换。
现在存储在<<"people">>
一些{Name, Age}
双我想使用的MapReduce(没有其他原因,比理解“如何”),以获取值回来了,不变,这第一次使用。
riakc_pb_socket:mapred(
Pid, <<"people">>,
[{map, {qfun, fun(Obj, _, _) -> [Obj] end}, none, true}]).
这只是给了我一个badfun,但是:
{error,<<"{\"phase\":0,\"error\":\"{badfun,#Fun<erl_eval.18.17052888>}\",\"input\":\"{ok,{r_object,<<\\\"people\\\">>,<<\\\"elaine\\\">"...>>}
如何我刚刚经历我的地图功能不变传递数据? Erlang客户端的文档是否比自述文件中有更好的文档?该自述文件似乎假定您已经知道输入是什么。
我不这么认为:请参阅http://stackoverflow.com/questions/2123004/mapreduce-with-riak?rq=1了解shell – 2013-04-13 12:18:50