在hive/sql中根据唯一性标准使用多对多Map计算唯一记录

7hiiyaii  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(288)

问题描述如下:
一个用户可能有多个帐户和链接到该帐户的多个电话号码。
单个帐户可能链接到一个或多个电话号码。
一个电话号码可能链接到一个或多个帐户。
没有两个用户拥有相同的帐户。
没有两个用户拥有相同的手机号码。
我们必须从这些信息中找出唯一用户的数量。
示例数据集可如下所示: | mob_num | acc_num | +---------+---------+ | mob01 | acc02 | | mob01 | acc01 | | mob02 | acc02 | | mob03 | acc01 | | mob11 | acc11 | | mob12 | acc11 | | mob13 | acc11 | | mob21 | acc21 | | mob21 | acc22 | | mob21 | acc23 | 此数据集的示例输出为:3
在本例中,我们有3个唯一的用户。
例如,一个唯一的用户可以被计算如下
1) mob01与acc01、acc02链接
2) mob02与acc02链接
3) mob03与acc01链接
一个用户可以有多个帐户和手机号码。如果mob01与acc01和acc02链接。我们可以放心地假设这个特定的用户有移动电话号码mob01和帐户acc01和acc02。但是,acc02也与mob02链接。因此,我们可以断定mob02属于同一个用户。与mob03相同。因此,尽管存在多对多Map,但我们确信mob01、mob02、mob03和acc01、acco2属于一个用户。
使用类似的逻辑,mob11、mob12和mob13与acc11链接。此特定用户有三个移动电话号码链接到一个帐户。
此外,mob21与acc21、acc22、acc23连接。此用户有一个链接到三个帐户的移动电话号码。
两个用户不能有相同的帐号或手机号码。这样,我们就可以建立用户的唯一性准则。
现在考虑到数据是hive/rdbms中的一个表,我们如何计算唯一用户的数量(如果可以使用sql查询解决此问题)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题