Apache Pig中的嵌套条件生成

时间:2013-12-25 14:51:52

标签: apache-pig

关系Joined_Usage是通过多个关系上的完全外连接获得的,从这些关系中获得的密钥是$ 0,$ 6,$ 12,$ 18,$ 24和$ 30 of Joined_Usage。如果不是null,每条记录的键是相等的。

我希望从Joined Usage派生一个新的Relation Usage,使得$ 0 of Usage包含Joined_Usage中相应记录的密钥(即不为null)。

我使用以下代码:

Usage = foreach Joined_Usage generate  ($0 is not null ? $0 : 
                        ($6 is not null ? $6 : 
                            ($12 is not null ? $12 : 
                                ($18 is not null ? $18 : 
                                $24 is not null ? $24 : $30)
                                )
                            )
                        )
                    );

然而,当我发现没有数。用法中的记录:

b =组使用全部; c = foreach b生成COUNT(使用);

计数显示更多Joined_Usage,这意味着重复记录......我不明白这是怎么回事......请帮忙!

1 个答案:

答案 0 :(得分:0)

您应该进行一些数据分析 - 您是否尝试在DISTINCT值上获取COUNT_STAR和COUNT?你确定你没有加入那些有重复键的关系吗?您可以在执行实际连接之前通过对连接键进行分组来测试(并使用MAX来获取不是键的字段)。