blob: 9f2e27dd49c3f03a10d7ddc14f4d6edb6f393ab2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
use Net::Riak;
my $riak = Net::Riak->new();
my $result =
$riak->add('goog')->map(map_max_daily_variance())
->reduce(reduce_max_daily_variance())->run;
say "max daily variance";
map { say $_ . " => ". $result->[0]->{$_} } sort {$a cmp $b} keys %{$result->[0]};
sub map_max_daily_variance {
"
function(value, keyData, arg){
var data = Riak.mapValuesJson(value)[0];
var month = value.key.split('-').slice(0,2).join('-');
var obj = {};
obj[month] = data.High - data.Low;
return [ obj ];
}
";
}
sub reduce_max_daily_variance {
"
function(values, arg){
return [ values.reduce(function(acc, item){
for(var month in item){
if(acc[month]) { acc[month] = (acc[month] < item[month]) ? item[month] : acc[month]; }
else { acc[month] = item[month]; }
}
return acc;
})
];
}
";
}
|