hive sql 填充数据的问题

如下图,公司和公司编号会有一些空的,希望能够做出自动填充的效果,只要遇到空行,就取其上面非空的内容,数据不是很规范,使用excel透视表做出的结果直接上传到数据库了,现在想在数据库中把它填充满,请帮忙想想如何用hive sql来做,谢谢

img

hive有个函数Lag,取前n条,你可以指定取前一条,然后判断,如果本身是null或空,就取lag的前一条,否则就用本身。
当然这个函数有个条件,是你得指定至少一个排序字段,否则无法判断哪个是上一条

建议在excel里提前处理好。处理方法为

  1. 全选单元格
  2. ctrl+g 定位空值,此时会跳到左上角第一个空值
  3. 输入=上一个单元格,按ctrl+enter,此时数据即可自动填充完成
  4. 最后再复制选择性粘贴去掉公式即可

不在HIVE里做的原因是,你这个表里面没有排序id,无法定位上一行和下一行,如果有id的话,倒是可以通过开窗函数中的lag来查询上一个值