1. 程式人生 > 其它 >匯入hive表資料為空問題解決

匯入hive表資料為空問題解決

技術標籤:筆記hivehivemapreduce

一、現象

(1)在本地執行hql時,資料可以正常插入,執行hql檔案時,資料插入表時,查不到資料。

(2)使用TEZ引擎時,hql執行不通過,報錯;使用MR執行時,可以通過,但是無資料輸出。

二、排查

經過排查,發現sql中有一個三個表union all的語句,只要一執行到這個語句,資料就會為空,hql如下:

  select
    group_id,uid,day
  from ods.tmp 
  union all
  select 
     group_id,uid,day
  from ods.tmp1
  union all
  select
    group_id,uid,day
  from ods.tmp2

於是查了一下這三張表的建表語句發現,臥槽,居然OUTPUTFORMAT不一樣,破案了。。。。。。

格式如下:

第一張:

第二張:

第三張:

三、解決方案

思路一:檢視【未解決】

with tmp as依然插不進入資料,測試的時候忘記截圖了。。。。可以也實驗一下。

思路二:建立臨時表【解決】

create temporary table

因為第二張表和第三張表都是特殊格式,並且格式是一樣的,就想著,我把這兩張表union all一起,然後插入臨時表總可以了吧,誰知道,報錯:Invocationexception,得,用不了,那隻能一個表建一張臨時表了,就是有點麻煩,還在只有兩張這樣的表。

四、優化

應該還有更好的方案,再想想,哈哈哈哈