hadoop - 在网页上查找唯一身份访问者

标签 hadoop apache-pig

我想编写一个 pig 脚本,以查找访问特定网页的唯一用户ID的数量。

表定义:a = (userid:chararray, otherid:chararray, webpage:chararray)
这是我写的,但是没有用

a = (userid:chararray, otherid:chararray, webpage:chararray)
group_by_page = GROUP a by webpage ;
count_d = FOREACH group_by_page GENERATE group, count(distinct(a.userid));

最佳答案

您需要在嵌套的foreach中使用DISTINCT;它不是UDF。这应该可以将您带到需要去的地方:

a = LOAD 'input' AS (userid:chararray, otherid:chararray, webpage:chararray);
group_by_page = GROUP a by webpage;
count_d = FOREACH group_by_page { uniq = DISTINCT a.userid; GENERATE group, COUNT(uniq); };

转到here了解有关嵌套的foreach的更多信息。

关于hadoop - 在网页上查找唯一身份访问者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21917548/

相关文章:

hadoop - Pig的新功能:错误1066,Pig版本0.17.0 Hadoop版本3.1.0

hadoop - 不处理已经处理过的文件?

hadoop - 如何在 Pig 中加载具有可变数量字段的文件

hadoop - 在 Pig 中使用 python udf 时出错

hadoop - Cloudera HDFS另一个NameNode已锁定存储目录

sorting - MapReduce - 如何按值排序减少输出

hadoop - PIG-Hadoop - 在 PIG 中有一种方法可以使用 Regex 进行内部连接

Hadoop Pig 排序结果;找到订单位置?

hadoop - Hadoop “cd”(更改目录命令)不起作用

sql - 需要对一列进行分组添加以获取Hive中另一列的计数