hadoop - 如何编写配置单元脚本以预期格式返回数据

标签 hadoop hive

impression  lineid1 cookieid1
impression  lineid1 cookieid2
impression  lineid1 cookieid3
impression  lineid1 cookieid4
impression  lineid1 cookieid1
impression  lineid2 cookieid1
impression  lineid2 cookieid2
impression  lineid3 cookieid1
impression  lineid1 cookieid1
impression  lineid3 cookieid3
impression  lineid4 cookieid1
impression  lineid4 cookieid2
impression  lineid1 cookieid1
impression  lineid4 cookieid3
impression  lineid4 cookieid4
conversion      cookieid1
conversion      cookieid2
conversion      cookieid3
conversion      cookieid3

所有事件(即印象、转化)都有 cookie_id。对于“印象”中的所有事件,我想知道这些 cookie_id(s) 在转换中发生了多少次。

我想要这样的 o/p:

line_id1    cookie_id1  count=1
line_id1    cookie_id2  count=1
line_id1    cookie_id3  count=1
line_id2    cookie_id1  count=1
line_id2    cookie_id2  count=1

如何编写一个hive脚本以期望的格式返回数据

最佳答案

通过cookieid加入表本身。过滤左行是展示而右行是转化的行。按 lineid 和 cookieid 分组以获取计数。

select lineid, cookieid, count(*) as count
from table t1 join table t2
on t1.cookieid = t2.cookieid
where t1.event = 'impression'
and t2.event = 'conversion'
group by lineid, cookieid

此查询不会返回没有转化的组合。

希望对您有所帮助。

关于hadoop - 如何编写配置单元脚本以预期格式返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854162/

相关文章:

sql - 使用 Filter 参数创建 View

hadoop - 在Hive的存储桶表中增量加载数据?

windows - Spark Windows 安装 Java 报错

hadoop - Apache Hive安装错误

linux - hadoop 用户应该在 sudoers 文件中吗?

regex - 使用 csv 格式的非结构化 GPS 数据包创建结构化 hive 表

arrays - 数组列值与配置单元中正常列值之间的比较

hadoop - Windows 'File Not Found'上的hiveserver2并挂起

java - hbase 拒绝远程用户连接

regex - hive 中的功能regex_extract