Hive中插入数据全为空(sql无误的情况下) 您所在的位置:网站首页 hive写入是突然有的时间格式数据写入时变null Hive中插入数据全为空(sql无误的情况下)

Hive中插入数据全为空(sql无误的情况下)

2024-07-16 21:34| 来源: 网络整理| 查看: 265

(作者:陈玓玏 data-master)

如果sql无误的情况下,其实这个问题很好解决。一个很可能的原因就是: 写入的数据类型和建表时定义的数据类型不一致。

我之前碰到这个问题,检查了sql很多遍,上层表的数据也检查了很多遍,都是没有问题的。这个时候,可以选择几条数据,不写入表,直接看结果,发现是有结果的。

再检查建表语句,发现建表语句是:

create table tmp.a (id int ,name string ,class_one float ,class_two float ,class_three float ) partitioned by (type string) stored as parquet

但写入时,class_one和class_two实际是string类型,定义时写错了,写成了float型,但写入时并未报错,应该是写入只是写入hdfs中,再更新元数据信息,依据元数据信息读取hdfs中的文件时无法解析对应字段,但不会妨碍写入文件系统。如果不是hive,其他数据碰到这个问题可能会报错的,但在hive中就不会,一定要小心这个问题。

如果sql没问题,直接select结果是正确的,那多半就是数据类型问题了。这样粗心的错误可能也只有我自己会犯了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有