0
Hbase 테이블에서받은 데이터로 재생하는 데 어려움이 있습니다. 나는 HBase를 테이블 EMP_META: COLUMN_NAME,SALARY,DESIGNATION,BONUS
을 가지고 있고 나는 코드 아래 사용하여 읽을 : 나는 위의 인쇄 문을 사용하여 인쇄 할 때 스파크 : Hbase 데이터를 인쇄하여 데이터 프레임으로 변환
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})
대신 간단한 데이터 텍스트 행을. 데이터를 쉽게 재생할 수 있도록 출력을 데이터 프레임으로 변환하고 싶습니다. 누군가 나를 도와주세요. 당신이 결과를 String로 변환 할 경우 문자열로 배열 [바이트]를 변환해야합니다,
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
hBaseRDD.toDF
: 당신이 DataFrame에 hbaseRDD을 변환 할 경우 감사
의견을 보내 주셔서 감사합니다. 나는 무의미한 것을하고 있었고, 한 가지 더 질문이 있습니다. 출력에있는 모든 열의 목록을 가져 오는 방법은 무엇입니까? getRow() 메소드를 사용하면 키 열을 가져올 수 있고 'value'는 두 번째 열을 제공하지만 나머지 열을 가져올 수는 없습니다. – Explorer
값은 hbase의 행이어야합니다, 당신은 각 열을 얻을 수 있습니다. 당신은 코드가 열을, 그렇지 않으면, 당신이 얻을 수있는 모든 열을 설정할 수 있습니다. – Fang