在RIAK上获取MapReduce结果(使用Java客户端)

在RIAK上获取MapReduce结果(使用Java客户端),第1张

在RIAK上获取MapReduce结果(使用Java客户端)

您正在使用的JS函数无法执行您认为的工作:)它基于具有特定值的字段选择对象,您必须提供该特定值作为阶段的参数。

我认为您正在寻找的是

mapValuesJson
可以做您想做的事。

另外,您的POJO中根本不需要构造函数。

下面的代码应该为您指明正确的方向(显然,这非常简单,POJO中的所有公共字段都没有注释):

public class App {    public static void main( String[] args ) throws IOException, RiakException    {        IRiakClient client = RiakFactory.httpClient();        Bucket b = client.fetchBucket("test_mr").execute();        b.store("myobject", new Person()).execute();        IRiakObject o = b.fetch("myobject").execute();        System.out.println(o.getValueAsString());        BucketMapReduce m = client.mapReduce("test_mr");        m.addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true);        MapReduceResult result = m.execute();        System.out.println(result.getResultRaw());        Collection<Person> tmp = result.getResult(Person.class);        for (Person p : tmp)        { System.out.println(p.data);        }        client.shutdown();    }}class Person {    public String id = "12345";    public String name = "my name";    public String lastUpdate = "some time";    public String data = "some data";}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5141790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存