首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示整数列空的HBase表上的单元表

显示整数列空的HBase表上的单元表
EN

Stack Overflow用户
提问于 2017-07-11 09:38:22
回答 1查看 1.2K关注 0票数 2

我试图在Hbase表上创建Hive表。详情如下:

HBase表的数据如下:

代码语言:javascript
复制
Connected to: Phoenix (version 4.7)
Driver: PhoenixEmbeddedDriver (version 4.7)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
1341/1341 (100%) Done
Done
sqlline version 1.1.8

0: jdbc:phoenix:maxiqtesting1.lti.com:2181:/h> 
select * from HBASE_TEST_6JULY_1792409;

+---------+---------+---------+

| FIELD0  | FIELD1  | FIELD2  |

+---------+---------+---------+

| 1       | qq      | 23      |

| 2       | ee      | 12      |

| 3       | dd      | 123     |

+---------+---------+---------+


3 rows selected (0.139 seconds)
0: jdbc:phoenix:maxiqtesting1.lti.com:2181:/h>

创建Hive命令:

代码语言:javascript
复制
CREATE EXTERNAL TABLE HBASE_TEST_6JULY(FIELD0 int,FIELD1 string, FIELD2 int) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,0:FIELD1,0:FIELD2","hbase.table.default.storage.type" = "binary",  'serialization.format'='1')
TBLPROPERTIES("hbase.table.name" = "HBASE_TEST_6JULY_1792409");

Hive表上的SELECT命令给出的结果如下:

代码语言:javascript
复制
hive> select * from HBASE_TEST_6JULY;
OK

-2147483647     qq      -2147483625

-2147483646     ee      -2147483636

-2147483645     dd      -2147483525

Time taken: 0.963 seconds, Fetched: 3 row(s)

整数列值没有正确显示。如果我将所有列设为单元格中的字符串,则HBase中对应的整数列将为null。

有谁能帮我,并通过在HBase上公开Hive表来读取数值正确的数值/非字符串列?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-12 19:54:52

要从hbase读取非字符串列,应该读取ddl语句。

代码语言:javascript
复制
CREATE EXTERNAL TABLE HBASE_TEST_6JULY(
FIELD0 int,
FIELD1 string, 
FIELD2 int
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key#b,0:FIELD1,0:FIELD2#b",  'serialization.format'='1')
TBLPROPERTIES("hbase.table.name" = "HBASE_TEST_6JULY_1792409");

注意在int列的列映射限定符中使用"#b“。这个帮我修好了。

请参阅jira问题线程。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45030794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档