【Hive WARN】Column order_discount had to be cast to a less precise type in Hive

妖狐艹你老母 2022-05-22 07:25 204阅读 0赞

最近无聊,随表拷了一个业务数据库中的订单明细表,自己查看了一下导表的日志,发现一直在报一个异常,而且还不少。

具体日志如下:

  1. 18/06/19 13:41:56 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `order_info` AS t LIMIT 1
  2. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column logistics_fee had to be cast to a less precise type in Hive
  3. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column order_discount_amount had to be cast to a less precise type in Hive
  4. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column order_amount had to be cast to a less precise type in Hive
  5. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column payment_date had to be cast to a less precise type in Hive
  6. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column send_date had to be cast to a less precise type in Hive
  7. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column recipient_date had to be cast to a less precise type in Hive
  8. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column refund_time had to be cast to a less precise type in Hive
  9. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column creation_date had to be cast to a less precise type in Hive
  10. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column last_update_date had to be cast to a less precise type in Hive
  11. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column actual_amount had to be cast to a less precise type in Hive
  12. 18/06/19 13:41:56 WARN hive.TableDefWriter: Column audit_time had to be cast to a less precise type in Hive
  13. 18/06/19 13:41:56 INFO hive.HiveImport: Loading uploaded data into Hive

虽然,不影响hive表中的数据内容,但是有很多这种类似的报错,感到很不安。

找了很多现在的网上资源,发现大多数都会报这个错误,但是都给略过去了,都没有在意。

但是在我帅气的英文水平下,发现这是个类型转换,没错就是个类型转换

我们都知道,Hive是基于JAVA实现的数据建表,数据类型都是JAVA中的数据类型,但是在mysql中,有个数据库类型是小数,而且能指定小数点后几位,前几位的decimal的类型,主要就因为这个类型无法和JAVA同步,在导表的过程中,默认就直接将数据类型转换成了double,但是数据长度是不用的,导致了数据精度不准确。虽然不影响主要计算,但是如果高精度的信息,可能会影像计算结果。

请大家悉知,以上为工作生活中的一点点小收获,分享给大家。

发表评论

表情:
评论列表 (有 0 条评论,204人围观)

还没有评论,来说两句吧...

相关阅读