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

  • 相关阅读:
    前端工程化
    前端模块化CommonJS&ES6
    为什么浮点型运算结果会有误差?
    RequestAnimationFrame知多少?
    CSS三栏布局
    秋招面试
    实现Storage
    Angular
    TypeScript
    微服务架构设计模式
  • 原文地址:https://www.cnblogs.com/alpha-cat/p/13082553.html
Copyright © 2011-2022 走看看