【发布时间】:2015-08-26 00:34:47
【问题描述】:
我阅读了 Nathan Marz 关于 lambda 架构的书。 我实际上是在对这个解决方案进行概念验证。
我很难构建我的 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;
}
我使用 Pail 将一些数据存储到文件夹中:/home/tickets
现在我想对这个数据提出一个请求:我想得到按文章名称分组的数量总和。 所以首先我需要得到名称,然后是数量。对于每个我可以获得文章的 ID。
例如,对于名称请求(id_article,名称),我将得到以下结果: (1、意大利面)—— (2、意大利面2)—— (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 和数据的联接?
【问题讨论】:
标签: hadoop hdfs thrift cascalog lambda-architecture