用Pig加载Hbase表。 Float给出了FIELD_DISCARDED_TYPE_CONVERSION_FAILED

时间:2012-02-28 11:09:18

标签: 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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

请尝试以下方式:

  def readFile(name):
    with open(name) as f:
        for line in f:
            line = line.strip() 
            print line

作为加载的默认分隔符是标签