Мы читаем таблицу Hbase с помощью Pyspark, используя следующие команды.
from pyspark.sql.types import *
host=<Host Name>
port=<Port Number>
keyConv = "org.apache.spark.examples.pythonconverters.ImmutableBytesWritableToStringConverter"
valueConv = "org.apache.spark.examples.pythonconverters.HBaseResultToStringConverter"
cmdata_conf = {"hbase.zookeeper.property.clientPort":port, "hbase.zookeeper.quorum": host, "hbase.mapreduce.inputtable": "CMData", "hbase.mapreduce.scan.columns": "info:Tenure info:Age"}
cmdata_rdd = sc.newAPIHadoopRDD("org.apache.hadoop.hbase.mapreduce.TableInputFormat","org.apache.hadoop.hbase.io.ImmutableBytesWritable","org.apache.hadoop.hbase.client.Result",keyConverter=keyConv,valueConverter=valueConv,conf=cmdata_conf)
output = cmdata_rdd.collect()
output
Я получаю результат, как показано ниже. (Ключ и возраст)
[(u'123', u'5'), (u'234', u'4'), (u'345', u'3'), (u'456', u'4'), (u'567', u'7'), (u'678', u'7'), (u'789', u'8')]
Вместо этого я ожидаю Key, Tenure и Age. Если у меня есть только столбец Tenure, то возвращаются Key и Tenure. Но если добавить больше столбцов, результат всегда будет иметь столбец Key и Age.
Может ли кто-нибудь помочь нам решить эту проблему.?
Примечание. Мы новички в этом инструменте.
Заранее спасибо.
valueConv = "org.apache.spark.examples.pythonconverters.HBaseResultToStringConverter"
пошло не так. Мы должны получить список/итерации в качестве значений из HBase, но каким-то образом только последняя запись этих итераций Java преобразуется в строку python. Это должно быть сообщение об ошибке. - person XValidated   schedule 31.07.2015