我有一个通过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).
表示每个浮点值。身份证打印得很好。
我正在跑步:
我的问题:为什么猪不能处理这些浮动值?我做错了什么?
答案 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
作为加载的默认分隔符是标签。