X615769472
2022-01-15 15:13
采纳率: 50%
浏览 16

hive sql 填充数据的问题

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

img

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • DarkAthena 2022-01-15 17:17

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

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

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

    评论
    解决 无用
    打赏 举报
  • 轮回摆渡者 2022-01-17 17:42

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

    评论
    解决 无用
    打赏 举报 编辑记录

相关推荐 更多相似问题