如下图,公司和公司编号会有一些空的,希望能够做出自动填充的效果,只要遇到空行,就取其上面非空的内容,数据不是很规范,使用excel透视表做出的结果直接上传到数据库了,现在想在数据库中把它填充满,请帮忙想想如何用hive sql来做,谢谢
hive有个函数Lag,取前n条,你可以指定取前一条,然后判断,如果本身是null或空,就取lag的前一条,否则就用本身。
当然这个函数有个条件,是你得指定至少一个排序字段,否则无法判断哪个是上一条
建议在excel里提前处理好。处理方法为
不在HIVE里做的原因是,你这个表里面没有排序id,无法定位上一行和下一行,如果有id的话,倒是可以通过开窗函数中的lag来查询上一个值