【问题标题】:How to send Parameters to a map reduce query如何将参数发送到 map reduce 查询
【发布时间】:2012-12-07 20:12:43
【问题描述】:

我正在用 erlang 为 Riak 编写一个 mapreduce 查询,我想在 Ubuntu 终端上通过 curl 使用 HTTP API 将参数传递给 Riak。查询的输入是 2i 查询,但我想要一个允许进一步过滤的参数。我认为 options 是关键字,因为我将在生产中使用 python 客户端,但它不方便校对我的 Erlang,而且它是我团队一直使用的关键字。

这就是我正在尝试的:

curl -X POST http://riakhost:port/mapred -H 'Content-Type: application/json' -d '{
    "inputs": {
        "bucket":"mybucket",
        "index":"field1_bin",
        "key":"val3"
    },
    "options": "test",
    "query": [
        {"map": {"language": "erlang", 
         "module": "mapreduce", 
         "function":"map"
        }},
    ]}'

在我看到的三个记录集上:

["none", "none", "none"]

但我想要:

["test", "test", "test"]

参数的格式是什么?

【问题讨论】:

    标签: erlang mapreduce riak


    【解决方案1】:

    我在 Erlang 中开发了一个set of configurable utility functions for Riak mapreduce。由于我希望能够指定一组标准,我决定允许用户将配置作为 JSON 文档传递,因为这适用于所有客户端类型,尽管其他文本表示也应该适用。 README.markdown 文件中提供了如何从 curl 中使用这些函数的示例。

    您可以通过“arg”参数将参数传递给每个单独的映射或减少阶段函数。您在此处指定的任何内容都将作为最终参数传递给 map 或 reduce 阶段,请参见下面的示例:

    "query":[{"map":{"language":"erlang","module":"riak_mapreduce_utils",
                     "function":"map_link","keep":false,
                     "arg":"{\"bucket\":\"master\"}"}},
    

    【讨论】:

      猜你喜欢
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多