首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有方法为预期的输出编写一个单元脚本?

是否有方法为预期的输出编写一个单元脚本?
EN

Stack Overflow用户
提问于 2013-11-19 04:21:54
回答 1查看 95关注 0票数 1

log1

代码语言:javascript
运行
复制
event1   foo_id1
event1   foo_id2
event1   foo_id3
event1   foo_id4
event1   foo_id1
event1   foo_id1
event1   foo_id2
event1   foo_id1
event1   foo_id1
event1   foo_id3

Log2

代码语言:javascript
运行
复制
event2      foo_id1     od_id1
event2      foo_id1     od_id13
event2      foo_id1     od_id15
event2      foo_id2     od_id2
event2      foo_id2     od_id14
event2      foo_id3     od_id3
event2      foo_id5     od_id9
event2      foo_id8     od_id10
event2      foo_id7     od_id11
event2      foo_id6     od_id12
event2      foo_id1     od_id4
event2      foo_id3     od_id5
event3      foo_id1     od_id6
event3      foo_id2     od_id7
event3      foo_id3     od_id8

预期产出

代码语言:javascript
运行
复制
event2  od_id1  1
event2  od_id2  1
event2  od_id3  1
event2  od_id4  1
event2  od_id5  1
event2  0d_id14 1
event2  od_id13 1
event2  od_id15 1

所有事件(即event1、event2、event3)都有foo_ids。对于"event1“中的所有事件,我想知道这些foo_id在od_id的event2组中发生了多少次。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 07:46:34

您所需要的只是一个"in子句“,您可以在Hive中使用左半连接。

在您的情况下,您将创建两个表:

代码语言:javascript
运行
复制
create table log1 (id string, fooid string);
create table log2 (id string, fooid string, odid string);

并将数据加载到这些表中。

您需要的SQL命令是

代码语言:javascript
运行
复制
select id, odid, count(fooid)
from log2 left semi join log1 on (log1.fooid = log2.fooid)
where id = 'event2'
group by id, odid;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20063169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档