如,JAQL可以遍历一个本地文件中的JSON集合,输出一个投影:
for $b in localRead('books')
return {$b.publisher, $b.title};
或构建一个查询条件,如同SQL一样:
for $b in localRead('books')
where exists(for $r in $b.reviews
where 'ben' in $r.discussion.[user]
return true)
return {$b.author, $b.title, $b.reviews};
支持SQL的GROUP,按book的publisher分组统计个数:
group $b in localRead('books') by $p = $b.publisher into $pubs
return {publisher: $p, num: count($pubs)};
对刚才获得的结果进行排序。
let $g = group $b in localRead('books') by $p = $b.publisher into $pubs
return {publisher: $p, num: count($pubs)},
$sorted = sort $i in $g by ($i.num desc)
return $sorted[0];
此外,JAQL还可以进行Join等操作。
join $x in localRead('X') on $x.a,
$y in localRead('Y') on $y.c
return {$x.a, $x.b, $y.c, $y.d};
目前JAQL已经在Hadoop平台上简单实现了。
参考
JAQL: Jaql: A JSON Query Language

