玩过Oracle的同学一定知道rowid=objectid+file#+block#+row#这个概念,其实在Hive里也有“Rowid”.
Hive里有虚拟列的概念,类似于Oracle里的伪列,其中三个虚拟列是:INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE,ROW__OFFSET__INSIDE__BLOCK.
INPUT__FILE__NAME:MAPREDUCE读取的文件的URI
BLOCK__OFFSET__INSIDE__FILE:For blockCompressed files,表示RCFile Block orSequenceFile 当前块在文件中的偏移量;For non-block-compressedfiles, 表示当前行的偏移量.
ROW__OFFSET__INSIDE__BLOCK:当打开参数hive.exec.rowoffset(默认关闭)时会开启这个虚拟列特性,For non-block-compressed files这个值一直为0,否则表示行号.
本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1336763,如需转载请自行联系原作者