【发布时间】:2016-12-05 13:24:34
【问题描述】:
我有一种情况需要处理负数值数据。文件中某些数值的负号位置(存储在 HDFS 中)在右侧(例如 12345-),理想情况下,负数在左侧表示为减号(例如,-12345)。
我无法更改数据,因为该数据是正确的,并且当源系统 (SAP) 使用该数据时,它能够将数据读取为负数。
在 hive 中我必须运行一些算术操作,比如我想要 SUM 这个包含像“12345-”这样的数据的值,然后 HIVE 无法将此值识别为数字(列类型为 DECIMAL(10,2))结果显示 NULL 作为值!需要您提出如何处理这种情况的建议。在此先感谢。
【问题讨论】:
-
首先将您的数据类型更改为
String,然后您将能够在该丑陋的SAP 格式上使用字符串函数并生成您可以cast(... as decimal(10,2))的东西
标签: hadoop hive integer hdfs negative-number