【发布时间】:2016-11-14 17:41:32
【问题描述】:
我有一个通过 HBase Java api 加载的 HBase 表,如下所示:
put.add(Bytes.toBytes(HBaseConnection.FAMILY_NAME), Bytes.toBytes("value"), Bytes.toBytes(value));
(其中变量value是一个普通的java浮点数。)
我继续用 Pig 加载它,如下所示:
raw = LOAD 'hbase://tableName' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('family:value', '-loadKey true -limit 5') AS (id:chararray, value:float);
但是,当我将其转储为:
dump raw;
我明白了:
[main] WARN org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Encountered Warning FIELD_DISCARDED_TYPE_CONVERSION_FAILED 5 time(s).
对于每个浮点值。 ID 打印得很好。
我正在跑步:
- Apache Hadoop 0.20.2.05
- 猪 0.9.2
- Hbase 0.92.0
我的问题:为什么猪不能处理这些浮点值?我做错了什么?
【问题讨论】:
-
尝试不带
AS (id:chararray, value:float)部分。它倾倒什么?在调用 Bytes.toBytes 之前尝试将 value 转换为 String,以了解问题所在。 -
我按照您的建议删除了“as”子句,但我得到的只是看起来很奇怪的 Udf-8 字符(因为数据是二进制的)。
标签: hadoop hbase apache-pig