Jimmy --
A couple of comments:
* Multiple sequential map phases only work if each map phase emits ONLY
key/value pairs as the inputs for the next map phase.
* The Javascript environment provides a function, ejsLog(), which you can use
to debug M/R jobs. You call it like this: ejsLog("/path/to/log/file",
"StringToLog")
--Kevin
On Apr 30, 2010, at 8:37 AM, Jimmy Thrasher wrote:
> Oops. Forgot to reply all.
>
> Dan suggested I try keep: true in the reduce phase, but it turns out that
> didn't make a difference. Can anyone else spot a hole in my query below?
> Are there logs I can look at to debug errors in the reduce phase?
>
> Hi Dan,
>
> Here's the query as I have it for debug purposes, including the wonky reduce
> phase. I might add that this query works on my local machine (Mac OS, Riak
> 0.9.1, not Innostore). The remote machine is Ubuntu 9.10, Amazon EC2 32-bit,
> Innostore, Riak 0.9.1.
>
> I'm generating the query in Ruby. Also, beware.. I'm a n00b. If this code is
> making obvious idiomatic errors, I'd be happy to receive your suggestions.
>
> Thanks,
>
> Jimmy
>
> query = {
> 'inputs' => 'events',
> 'query' => [
> {'map' => { # go get annotations
> 'language' => 'javascript',
> 'source' => <<-END
> function(v) {
> var d = Riak.mapValuesJson(v)[0]
> if (d.type == "checkin" && (#{guard_expression}))
> return [[v.bucket, v.key], [v.key + ',annotation',
> 'spend']]
> else
> return []
> }
> END
> }},
> {'map' => {
> 'language' => 'javascript',
> 'source' => # verify the annotations exist
> 'function(v) {
> if ("values" in v && "bucket" in v)
> return [[v.bucket, v.key]]
> else
> return []
> }'}},
> {'map' => { # prep for reduce phase
> 'language' => 'javascript',
> 'source' =>
> 'function(v,k,a) {
> return [v]
> }'}},
> {'reduce' => { # does the reduce phase work?
> 'language' => 'javascript',
> 'source' =>
> 'function(v, a) {
> return v
> }'}},
> ]}
>
> On Thu, Apr 29, 2010 at 9:18 PM, Dan Reverri <[email protected]> wrote:
> What's the map phase function?
>
> On Thu, Apr 29, 2010 at 6:14 PM, Jimmy Thrasher <[email protected]> wrote:
> Hi everyone. Hope you're doing well. Tried this on the IRC channel, but I
> guess it was dinner time. :)
>
> I have a query which, up until today, has worked quite well. The data
> currently coming out of the map phases are all correct looking, but the
> minute I start a reduce, I get [] as the result.
>
> Currently, for debug, my only reduce function looks like this:
> function(values) {
> return values
> }
>
> If I remove all the reduce phases, I get, say, 2 items out of the query. But
> if I put that reduce function in, I get only [].
>
> Is this something anyone has seen before? How should I go about debugging it?
>
> Thanks for any direction you can give.
>
> Jimmy
>
>
> _______________________________________________
> riak-users mailing list
> [email protected]
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>
>
>
>
> _______________________________________________
> riak-users mailing list
> [email protected]
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com