【发布时间】:2018-02-09 09:21:54
【问题描述】:
我们已经从 HBase 表创建了一个 SparkRDD,现在想要访问它的元素。以下是我们所做的:
- 已创建 RDD
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
println("hbase RDD:")
hBaseRDD.collect().foreach(println)
-
hBaseRDD的o/p如下:
(31 30 31,keyvalues={100/f1:id/1518081262631/Put/vlen=3/seqid=0,
100/f1:name/1518081278652/Put/vlen=3/seqid=0})
(31 30 31,keyvalues={101/f1:id/1518081307150/Put/vlen=3/seqid=0,
101/f1:name/1518081291946/Put/vlen=3/seqid=0})
- HBase 表中的数据为:
ROW COLUMN+CELL
100 column=f1:id, timestamp=1518081262631, value=100
100 column=f1:name, timestamp=1518081278652, value=abc
101 column=f1:id, timestamp=1518081307150, value=102
101 column=f1:name, timestamp=1518081291946, value=def
所以 Spark RDD 返回 HBase 表中实际数据的长度,而不是实际数据本身。如何从 HBase 表中获取实际数据?
【问题讨论】:
标签: scala apache-spark hbase rdd