通过使用配置单元将2个表连接到C来存储最新的推文

时间:2016-10-27 02:39:58

标签: hadoop twitter hive

我有3个表A,B常见的东西是tweeetId,在两个表中的account_id我想加入A和B,因为我已经查询了一个

Select created_date, tweet_text, user_description
from A inner join
     B
     on A.tweetId = B.tweetId and A.account_id = B.accountid;

我想在加入B后获取最新的created_date,然后将最新创建的日期与C的最新创建日期进行比较。所以目标是每次查询运行时我需要在A中存在的最新推文的条件下将数据插入到C中,并且B必须转储到C中。

1 个答案:

答案 0 :(得分:0)

要按日期获取最新推文,请使用row_number()函数。 像这样:

insert overwrite C  --or insert into
select * from 
(
    select created_date, tweet_text, user_description
           row_number() over(partition by weetId, account_id order by created_date desc) as rn,
           tweetId, account_id --PK 
    from A inner join
         B
         on A.tweetId = B.tweetId and A.account_id = B.accountid
)s
where s.rn=1; --take the latest