求一个数据量很大的文件,行与行中某一个字段(例)的交集数 运行环境是在hadoop+hive

例如:
create table tmp_wish_similar_shop as 
select a.itemid as itemid1,similar_cnt(a.sku_id,b.sku_id),b.itemid as itemid2 
from 
(select itemid,sku_id from a ) a
inner join 
(select itemid,sku_id from a ) b
where a.itemid!=b.itemid

sku_id:是一个很长的字符串,存储方式例如(key:value,key:value)一个或多个
a表有一亿条记录,similar_cnt是一个udf函数,是计算不同itemid下的 两个sku_id的交集的个数

hivesql 可以实现,但是出于数据量太大(一亿条),cross join 最后只有一个reduce
如果还是在hadoop环境上有没有其实的解决办法

要回复问题请先登录注册