zoukankan      html  css  js  c++  java
  • hive 求相互是好友.

    1.求互相为好友一般原文件形式如下 , 第一步需要炸开 , 则需要使用 lateral view

    A: BCDEF

    B: CDEF

    C: ASD

    反正最后我处理的文件是 ,我只是提供这种思路.

     2. 第二步 , 根据字典排序

    select  if(substr(str,1,1)>substr(str,2,1),reverse(str),str) from k2;

    >我的思路是 , 把字段里面 提取出两个人 名字 ,按字典排序 , 那么小明和小华是好友 , 小华和小明是好友 , 最后都会变成 , 小明和小华 .

    然后再group by ,count(*)=2的时候就是共同好友

    比如 AB , A<B  则不动 , BA  ,就会变成 AB

    那么处理完就这样了

    select friend,count(friend) from 
    (select if(substr(str,1,1)>substr(str,2,1),reverse(str) ,str ) as friend from k2) t1
    group by friend where friend=2;

    也就是谁和谁是好友出现了两次 , 就是共同好友 , 之所以出现两次 , 因为我们人为的把AB->AB  BA->BA ,

    这样省去了 判断AB 和  BA

  • 相关阅读:
    C#泛型学习
    C#事件复习
    C#学习笔记之接口
    C#委托复习
    C#图解教程学习笔记(二)
    C#图解教程学习笔记
    Linq学习2
    Linq学习
    转载 协变与逆变的概念
    SqlServer在关联的情况下的增删改查
  • 原文地址:https://www.cnblogs.com/alpha-cat/p/13082553.html
Copyright © 2011-2022 走看看