0
Hbaseテーブルから受信したデータを再生するのが難しいです。私は、HBaseのテーブルEMP_META: COLUMN_NAME,SALARY,DESIGNATION,BONUS
を持っていると私は、コードの下に使用してそれを読む:私は上記のprint文を使用して印刷するときしかし、私は、出力の下に取得スパーク: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
:あなたはデータフレームにhbaseRDDを変換したい場合は おかげ
あなたのコメントをありがとう、私はいくつか無意味なことをしていた、私はもう一つ質問があります。出力のすべての列のリストを取得するにはどうすればよいですか?メソッド 'getRow()'ではキー列を取得できますが、 'value'は2番目の列を返しますが、残りの列を取得することはできません。 – Explorer
値は、hbaseの行にする必要があります、あなたは各列を取得することができます。コードは、列を設定しているかもしれない、そうでなければ、すべての列を得ることができます。 – Fang