2017-01-09 10 views
0

У меня возникли трудности с воспроизведением данных, полученных из таблицы Hbase. У меня есть таблица Hbase EMP_META: COLUMN_NAME,SALARY,DESIGNATION,BONUS и я прочитал его, используя код ниже:Spark: печать данных Hbase и преобразование их в Dataframe

def main(args: Array[String]): Unit = { 
val sc = new SparkContext("local", "hbase-test") 
println("Running Phoenix Context") 
val conf = HBaseConfiguration.create() 
conf.set(TableInputFormat.INPUT_TABLE, "EMP_META") 
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result]) 
println("--------------: "+hBaseRDD.first()) 
} 

Однако, когда я печатаю его с помощью выше оператора печати я получаю ниже выхода:

(65 6d 70 6c 6f 79 65 65,keyvalues={employee/0:COLUMN_NAME/1483975443911/Put/vlen=4/seqid=0, employee/0:DATA_TYPE/1483975443911/Put/vlen=7/seqid=0, employee/0:_0/1483975443911/Put/vlen=1/seqid=0}) 

Вместо простых текстовых данных строк. Я хочу преобразовать вывод в dataframe, чтобы я мог легко играть с данными. Может кто-то, пожалуйста, помогите мне в этом. Благодаря

ответ

1

Если вы хотите конвертировать hbaseRDD в DataFrame, вы можете использовать код последующей:

val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
    import sqlContext.implicits._ 
    hBaseRDD.toDF 

Если вы хотите, чтобы преобразовать результат в строку, вы должны преобразовать массив [Byte] для String. Данные, хранящиеся в HBase, это Array [Byte]. Попробуйте использовать Bytes.toString (data) для его преобразования.

+0

Спасибо за ваш комментарий, я делал какие-то бессмысленные вещи, у меня есть еще один вопрос. Как я могу получить список всех столбцов на выходе? С методом 'getRow()' я могу получить столбец ключей, а 'value' дает второй столбец, но я не могу получить оставшиеся столбцы. – Explorer

+0

Значение должно быть строкой в ​​hbase, вы можете получить каждый столбец. Может быть, вы установили столбец, иначе все столбцы вы можете получить. – Fang

 Смежные вопросы

  • Нет связанных вопросов^_^