Hive定位数据文件路径的方法

May 30, 2019 0 条评论 2.5k 次阅读 0 人点赞

在hive中排查数据错位、脏数据时,需要知道数据的具体文件,可以通过虚拟列来帮助诊断定位。
* INPUT__FILE__NAME
map任务读入的文件全路径
* BLOCK__OFFSET__INSIDE__FILE
如果是RCFile或者是SequenceFile块压缩格式文件则显示Block file Offset,也就是当前快在文件的第一个字偏移量,如果是TextFile,显示当前行的第一个字节在文件中的偏移量
* ROW__OFFSET__INSIDE__BLOCK
RCFile和SequenceFile显示row number, textfile显示为0

譬如有表a,我们需要找到异常数据的具体位置,代码如下:

select *,INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE  from a  where ds=2019052901 and imei1='460017684629873'

得到如下结果:

拿到文件路径下载下来,就可以定位到具体的问题原因了

巨人肩上的矮子

互联网从业者

文章评论(0)