3.Hive中查看數據來源文件和具體位置方法


虛擬列

-- 當 hive 產生了非預期的或 null 的時候,可以通過虛擬列進行診斷,判斷哪行數據出現問題

INPUT__FILE__NAME     (輸入文件名)map任務讀入File的全路徑

BLOCK__OFFSET__INSIDE__FILE     (塊內偏移量) 如果是RCFile或者是SequenceFile塊壓縮格式文件則顯示Block file Offset,也就是當前快在文件的第一個字偏移量,如果是TextFile,顯示當前行的第一個字節在文件中的偏移量

ROW__OFFSET__INSIDE__BLOCK     ( 行偏移量,需要設置 hive.exec.rowoffset=true; 啟用 ) RCFile和SequenceFile顯示row number, textfile顯示為0

 

如:表 ods.kesheng_sdk_json_ex

hive> select INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE  from ods.kesheng_sdk_json_ex limit 5;
OK
hdfs://ns1/user/hadoop/ods/kesheng/20160811/00/kesheng.1470913703668.gz 0
hdfs://ns1/user/hadoop/ods/kesheng/20160811/00/kesheng.1470913703668.gz 894
hdfs://ns1/user/hadoop/ods/kesheng/20160811/00/kesheng.1470913703668.gz 1768
hdfs://ns1/user/hadoop/ods/kesheng/20160811/00/kesheng.1470913703668.gz 2627
hdfs://ns1/user/hadoop/ods/kesheng/20160811/00/kesheng.1470913703668.gz 5430
Time taken: 24.381 seconds, Fetched: 5 row(s)

由於我們公司的這個參數沒有開啟,所以ROW__OFFSET__INSIDE__BLOCK就沒有啦

如果碰到有臟數據或者結果異常的時候,可以通過select這三個值來定位出錯的原始文件和具體所在位置,很方便。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM