hadoop - 使用 Pig 加载 Hbase 表。 float 给出 FIELD_DISCARDED_TYPE_CONVERSION_FAILED

标签 hadoop hbase apache-pig

我有一个通过 HBase Java api 加载的 HBase 表,如下所示:

put.add(Bytes.toBytes(HBaseConnection.FAMILY_NAME), Bytes.toBytes("value"), Bytes.toBytes(value));

(其中变量 value 是一个普通的 java float。)

我继续使用 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).

对于每个浮点值。身份证打印精美。

我正在运行:

  • Apache Hadoop 0.20.2.05
  • pig 0.9.2
  • Hbase 0.92.0

我的问题:为什么 pig 不能处理这些浮点值?我做错了什么?

最佳答案

原来你必须添加一个施法者。像这样:

USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('family:value', '-loadKey true -limit 5 -caster HBaseBinaryConverter')

关于hadoop - 使用 Pig 加载 Hbase 表。 float 给出 FIELD_DISCARDED_TYPE_CONVERSION_FAILED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480788/

相关文章:

hadoop - yarn 时间轴服务器日志聚合

mysql - Scoop 选择性导出 hdfs 到 mysql

java - Pig JVM java堆空间错误

java - 使用 Hadoop,我可以在没有运行数据节点的机器上创建任务跟踪器吗?

hadoop - Apache PIG-将毫秒转换为TimeStamp Unix

hadoop - 指向本地文件的 AvroStorage schema_uri 不起作用

hadoop - oozie hive hadoop 作业

hadoop - 从Hive查询HBase表

hbase - HBase 批处理 put(List<Put>) 比 put(Put) 快吗? Put 对象的容量是多少?

HBase始终启动Zookeeper服务器