Apache pig Pig:多列的计数频率

Apache pig Pig:多列的计数频率,apache-pig,Apache Pig,我想计算pig中2个字段组合的频率: ------ y1 has the fields ----- a1 = GROUP y1 BY (user_id, tweet_created_at); a2 = FOREACH a1 GENERATE group AS (user_id, tweet_created_at), COUNT(y1) AS number_of_replies_by_user; a3 = FOREACH a2 GENERATE user_id, tweet_created_at,

我想计算pig中2个字段组合的频率:

------ y1 has the fields -----
a1 = GROUP y1 BY (user_id, tweet_created_at);
a2 = FOREACH a1 GENERATE group AS (user_id, tweet_created_at), COUNT(y1) AS number_of_replies_by_user;
a3 = FOREACH a2 GENERATE user_id, tweet_created_at, number_of_replies_by_user;
a4 = JOIN y1 BY (user_id, tweet_created_at) LEFT OUTER, a3 BY (user_id, tweet_created_at);
在上面,我想计算(
user\u id,tweet\u created\u at
)字段组合的频率

a2=FOREACH a1生成组作为(用户id,tweet创建时),计数(y1)作为用户回复的数量
给出错误:
不兼容模式:左侧为“用户id:NULL,tweet\u创建的位置:NULL”,右侧为“组:元组(用户id:bytearray,tweet\u创建的位置:bytearray)”

我尝试不使用括号:
a2=FOREACH a1生成组作为用户id,tweet创建在,计数(y1)作为用户回复的数量

我得到另一个错误:

Invalid field projection. Projected field [tweet_created_at] does not exist in schema:..................
这是语法错误还是我的数据有问题? 如果出现语法错误,正确的方法是什么

简而言之:我想计算用户在发布每条推特时的回复数量。(如果他在同一天发布了2条推文,他可能在第一条推文时回复10条,第二条推文时回复15条)。我想如果我不按
tweet\u创建的
分组,回复计数在任何时候都是一个常量,这是错误的。

在组中使用将元组取消到字段中

a2 = FOREACH a1 GENERATE FLATTEN(group) AS (user_id, tweet_created_at), COUNT(y1) AS number_of_replies_by_user;
在组上使用将元组卸载到字段中

a2 = FOREACH a1 GENERATE FLATTEN(group) AS (user_id, tweet_created_at), COUNT(y1) AS number_of_replies_by_user;

工作。谢谢工作。谢谢