Hive中檢視資料來原始檔和具體位置方法
通常使用者在HIVE中用SELECT語句出來結果,無法確定結果是來自哪個檔案或者具體位置資訊,HIVE中考慮到了這點,在Virtual Column虛列中可以指定三個靜態列:
1. INPUT__FILE__NAME map任務讀入File的全路徑
2. BLOCK__OFFSET__INSIDE__FILE 如果是RCFile或者是SequenceFile塊壓縮格式檔案則顯示Block file Offset,也就是當前快在檔案的第一個字偏移量,如果是TextFile,顯示當前行的第一個位元組在檔案中的偏移量
3. ROW__OFFSET__INSIDE__BLOCK RCFile和SequenceFile顯示row number, textfile顯示為0
注:若要顯示ROW__OFFSET__INSIDE__BLOCK ,必須設定set hive.exec.rowoffset=true;
測試:
1.
table: test_virtual_columns
InputFormat: org.apache.hadoop.mapred.TextInputFormat
query:
select a, INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE,ROW__OFFSET__INSIDE__BLOCK from test_virtual_columns;
result:
qweqwe hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t3.txt 0 0
dfdf hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t3.txt 7 0
sdafsafsaf hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t3.txt 12 0
dfdffd hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t3.txt 23 0
dsf hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t3.txt 30 0
1 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 0 0
2 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 2 0
3 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 4 0
4 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 6 0
5 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 8 0
6 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 10 0
7 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t1.txt 12 0
8 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t2.txt 0 0
9 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t2.txt 2 0
10 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t2.txt 4 0
11 hdfs://10.2.6.102/user/hive/warehouse/tmp.db/test_virtual_columns/t2.txt 7 0
2.
table: nginx
InputFormat: org.apache.hadoop.hive.ql.io.RCFileInputFormat
query:
select hostname, INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE,ROW__OFFSET__INSIDE__BLOCK from nginx where dt='2013-09-01' limit 10;
result:
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 0
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 1
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 2
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 3
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 4
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 5
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 6
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 7
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 8
10.1.2.162 hdfs://10.2.6.102/share/data/log/nginx_rcfile/2013-09-01/000000_0 537155468 9
如果碰到有髒資料或者結果異常的時候,可以通過select這三個值來定位出錯的原始檔案和具體所在位置,很方便。
相關推薦
Hive中檢視資料來原始檔和具體位置方法
通常使用者在HIVE中用SELECT語句出來結果,無法確定結果是來自哪個檔案或者具體位置資訊,HIVE中考慮到了這點,在Virtual Column虛列中可以指定三個靜態列: 1. INPUT__FILE__NAME map任務讀入File的全路徑 2. BL
Hive中元資料表的關係和如何在元資料中刪除表
各表之間主鍵的關係圖 這個整理很不容易呀,能夠更好地瞭解他們,其中有一種場景需要使用的 傳統的方法刪除這張表: 方式一:僅刪除表中資料,保留表結構 truncate table 表名; (truncate用於刪除所有的行,這個行為在hive元儲存刪除資料是不可逆的) 或 d
使用spark將hive中的資料匯入到mongodb
import com.huinong.truffle.push.process.domain.common.constant.Constants; import com.mongodb.spark.MongoSpark; import com.mongodb.spark.config.WriteConf
Pig指令碼從Hive中load資料並存入到Hbase中
1、我們先建一個Hive表test01: create table test01(name String, age int, phone String,province String, city String) ROW FORMAT DELIMITED FIELDS TERMINATED B
google瀏覽器中 檢視記住的賬號和密碼
對於一個有“健忘症”的人來說,密碼形同虛設。。設定了就忘記,每次登陸都要重新設定密碼。。。 然後,無意中發現,谷歌瀏覽器點過一次記住密碼後,竟然可以明文檢視賬號和密碼!! 步驟: 1、開啟谷歌瀏覽器,在右上角的選單項中,選擇設定選項 2
從hive中獲取資料
MySQL中獲取資料 public RestMsg<Object> getZhen( HttpServletRequest request) { RestMsg<Object> rm = new RestMsg<Object>();
SparkStreaming消費Kafka中的資料 使用zookeeper和MySQL儲存偏移量的兩種方式
Spark讀取Kafka資料的方式有兩種,一種是receiver方式,另一種是直連方式。今天分享的SparkStreaming消費Kafka中的資料儲存偏移量的兩種方式都是基於直連方式上的 話不多說 直接上程式碼 ! 第一種是使用zookeeper儲存偏移量 object Kafka
Hive中的資料模型
Hive 中主要包括 4 種資料模型:表(Table)、外部表(External Table)、分割槽(Partition)以及 桶(Bucket)。 Hive 的表和資料庫中的表在概念上沒有什麼本質區別,在 Hive 中每個表都有一個對應的儲存目錄。 外部表指向已經在 HDF
1.2 Vue例項中的資料,事件和方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdel
Sqoop把hive中的資料匯出到mysql中
首先 官網上對sqoop的定義是: Sqoop是一個被設計用來在hadoop大資料平臺和結構化資料庫(比如關係型資料庫)之間傳輸批量資料的一個工具。既然是一個工具那麼用起來
通過spark-sql快速讀取hive中的資料
1 配置並啟動 1.1 建立並配置hive-site.xml 在執行Spark SQL CLI中需要使用到Hive Metastore,故需要在Spark中新增其uris。具體方法是將HIVE_CONF/hive-site.xml複製到SPARK_CONF目錄下,然後在該配置檔案中,新增hive.metast
如何快速地將Hive中的資料匯入ClickHouse
如何快速地將Hive中的資料匯入ClickHouse ClickHouse是面向OLAP的分散式列式DBMS。我們部門目前已經把所有資料分析相關的日誌資料儲存至ClickHouse這個優秀的資料倉庫之中,當前日資料量達到了300億。 在之前的文章如何快速地把HDFS中的資料
hive中的行轉列和列轉行
轉載於此 一、行轉列的使用 1、問題 hive如何將 a b 1 a b 2 a b 3 c d 4 c d 5 c d 6
sparksql讀取hive中的資料儲存到hdfs中
package wondersgroup_0905_Test import org.apache.spark.sql.SparkSession object sparkHive { def main(args: Array[String]): Unit = { //資料庫名稱
vue中axios資料請求 get和post
axios(基於 promise 的 HTTP 庫) <script src="./vue.js"></script> <!-- 1. 引入axios檔案 --> <script src="./axios.js"></script&g
hive 中的二級分割槽表和動態分割槽表
二級分割槽表/管理表: create table emp_part1( empno int, empname string, empjob string, mgrno int, bi
c++中利用巨集來宣告和定義變數
假設我們要定義一個配置類,類中包含了很多的配置成員,有一種通過巨集的方法可以讓我們方便的維護繁多的成員 在一個類中,定義一個變數需要型別,建構函式中給出的初始值。我們需要能夠像指令碼語言一樣進行配置變數: tconfig.h OPTION(m_data,OPT_INT,-1) OPTION(m_value
hive中自帶function簡介和使用
hive 預設自帶了很多函式,以方便我們的日常使用 我們可以使用show functions; 命令進行檢視目前可以使用的function; 可以使用如下的命令 檢視某一個函式的使用方法 hive (default)> desc function extended split; O
Hive中的資料壓縮
1.資料檔案儲存格式 下面簡介一下hive 支援的儲存格式 file_format: : SEQUENCEFILE | TEXTFILE -- (Default, depending on hive.default.fileformat configuration)
HTML5中的資料集dataset和自定義屬性data-*
在html5中可為所有元素新增一種自定義的屬性,這種屬性的字首以data-開頭,比如:data-name,目的是為元素提供與頁面渲染無關,但與dom元素強相關的屬性。新增完自定義屬性後我們可以通過