如何在蜂巢中进行配对


  1. 首先,我们通过加载以下csv文件创建一个配置单元表
$cat data.csv
ID,City,Zip,Flag
1,A,95126,0
2,A,95126,1
3,A,95126,1
4,B,95124,0
5,B,95124,1
6,C,95124,0
7,C,95127,1
8,C,95127,0
9,C,95127,1

(a( 其中,上面的"ID"是主键(唯一(,

(b( 对于每个"城市"one_answers"邮政编码"组合,最大值中有一个ID,Flag=0;而它可以包含多个ID,每个"城市"one_answers"邮政编码"组合的Flag=1。

(c( 标志可以是0或1

  1. 将上面的csv文件加载到配置单元表
create table test(ID string, City String, Zip String, Flag int) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY "," ;
LOAD DATA LOCAL INPATH "./data.csv" OVERWRITE INTO TABLE test;
  1. 对于Flag=0的每个ID,我们希望将其与Flag=1但具有相同城市邮政编码的另一个ID配对。如果找不到另一个Flag=1且匹配City-Zip的配对ID,我们只需删除该记录

以下是预期结果:

ID,City,Zip,Flag
1,A,95126,0
2,A,95126,1
4,B,95124,0
5,B,95124,1
7,C,95127,1
8,C,95127,0

如何在Hive或Python中进行配对,有什么有价值的提示吗?

试试这个。

select t2.*
FROM
test t1 INNER JOIN test t2
ON t1.City != t2.City
AND t1.Zip != t2.Zip
AND t1.Flag != t2.Flag
AND t1.ID<t2.ID

相关内容

  • 没有找到相关文章

最新更新