关于spark和 hive 10亿数量级的计算

老师:您好!
关于spark 和 hive 计算的问题:
我现在项目有三张表      交易确认表 t_confirm_all  10亿条数据,每天新增2千万条数据
                  账号表(部分账号) t_account 2万条数据
                  提数表   t_out_confirm (这个表数据的产生 由每天执行t_confirm_all和                             t_account 查询的结果 插入到t_out_confirm,增量插入,目前这个表有                        1.5亿条数据)
           之前用oracle存储过程写的,很慢很慢
                  insert into t_out_confirm(accountid,.......)  
                  select 
                    accountid,....
                  from  
                  (select t1.* from t_confirm_all t1, t_account t2
                    where t1.accountid = t2.accountid 
                  ) X
                  where not exists
                  ( select 1 from t_out_confirm t3
                    where t3.accountid = X.accountid)
                 
           现在改成 spark 和 hive (每天把这三个表数据sqoop到hive)     
           
           val tconfirm_data = hiveContext.sql("select t1.accountid.. from t_confirm_all t1,t_account t2 where t1.accountid = t2.accountid")

           val df_tconfirm = tconfirm_data.toDF()
           // 从 hive 库取提数表记录
           val t_out_confirm_data = hiveContext.sql("select * from t_out_confirm")

           val df_t_confirm = t_out_confirm_data.toDF()

           //计算结果写入hive 提数表,因hive 不支持 not exists,我用的是两个dataframe的差集 except的方法
           df_tconfirm.except(df_t_confirm).insertInto("t_out_confirm",false)

          以上方法花费时间也很长,有其它方法吗?怎么优化? 谢谢!
已邀请:
你可以试试presto,每次都全量查询肯定挺慢的···

fish - Hadooper

三个步骤中哪个耗费的时间长? 
Hive是否已经做了列存储、分Bucket等优化?

要回复问题请先登录注册