Загрузка стола Hbase со свиньей. Float дает FIELD_DISCARDED_TYPE_CONVERSION_FAILED - PullRequest
1 голос
/ 28 февраля 2012

У меня есть таблица HBase, которая загружается через API Java 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).

для каждого значения с плавающей запятой. Идентификаторы напечатаны хорошо.

Я бегу:

  • Apache Hadoop 0.20.2.05
  • Свинья 0.9.2
  • Hbase 0,92,0

Мой вопрос: почему косяк не может обрабатывать значения с плавающей запятой? Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 14 марта 2012

Оказывается, вам нужно добавить заклинателя.Вот так:

USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('family:value', '-loadKey true -limit 5 -caster HBaseBinaryConverter')
0 голосов
/ 06 декабря 2015

Пожалуйста, попробуйте следующим образом:

test = load '/user/training/user' using PigStorage(',') 
  as (user_id, name, age:int, country, gender);

В качестве разделителя по умолчанию для загрузки используется tab .

...