1
我在lambda体系结构上阅读了Nathan Marz的书。 我实际上正在对此解决方案进行概念验证。Jcascalog查询HDFS上的节俭数据
我难以构建我的Jcascalog查询。
这是我们感兴趣的那块我节俭架构:
union ArticlePropertyValue {
1: decimal quantity,
2: string name;
}
union ArticleID {
1: int id;
}
struct ArticleProperty {
1: required ArticleID id;
2: required ArticlePropertyValue property;
}
union DataUnit {
1: TicketProperty ticket_property;
2: ArticleProperty article_property;
}
我存储与桶一些数据的文件夹:/家庭/票
现在,我想就这个请求数据:我想通过文章名称获得数量分组的总和。因此,首先我需要获取名称和数量。对于每个我可以得到文章的ID。
例如,我将具有该结果的名称请求(id_article,名): (1,面食) - (2,pasta2) - (3,面食)
对于量请求( id_article,数量): (1,2) - (2,1) - (3,1)
Tap source = splitDataTap("/home/florian/Workspace/tickets");
Api.execute(
new StdoutTap(),
new Subquery("?name", "?sum")
.predicate(source, "_", "?data")
.predicate(new ExtractArticleName(), "?data")
.out("?id", "?name")
.predicate(new ExtractArticleQuantity(), "?data")
.out("?id", "?quantity")
.predicate(new Sum(), "?quantity")
.out("?sum")
);
的问题是,我不知道如何合并的结果呢? 如何使用HDFS中的Cascalog和数据进行连接?