【问题标题】:How to Insert and retrieve a decimal value in hive table如何在 hive 表中插入和检索十进制值
【发布时间】:2016-01-28 05:15:57
【问题描述】:

我想在 hive 表中插入和检索十进制值。 这是我的 sn-p,它总是返回 NULL:

CREATE TABLE complex_types (c1 decimal);

INSERT INTO TABLE complex_types SELECT cast('100' as decimal);

SELECT * FROM complex_types;

【问题讨论】:

  • 你到底想要什么?
  • 我想要一种在 hive 表中正确插入十进制值的方法,我该怎么做?
  • Hive 不是 SQL Server,没有 FROM 就不能拥有 SELECT value。而且它不是 Oracle,您没有等效于具有 1 条虚拟记录的“DUAL”虚拟表。
  • 您应该明确定义 DECIMAL 的比例/精度,例如DECIMAL(22,7) 15+7 位数字。

标签: java sql hadoop hive hiveql


【解决方案1】:

您可以使用 LazySimpleSerDe 或 LazyBinarySerDe 在此类表中读取和写入值。

例如:

alter table decimal_1 set serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe';

alter table decimal_1 set serde 'org.apache.hadoop.hive.serde2.lazy.LazyBinarySerDe';

来源信息为here

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多