我使用cloudera的sparkonhbase模块从hbase获取数据。
我得到的rdd是这样的:
var getRdd = hbaseContext.hbaseRDD("kbdp:detalle_feedback", scan)
基于此,我得到的是一个类型的对象
RDD[(Array[Byte], List[(Array[Byte], Array[Byte], Array[Byte])])]
它对应于行键和值列表。它们都由字节数组表示。
如果我将getrdd保存到一个文件中,我看到的是:
([B@f7e2590,[([B@22d418e2,[B@12adaf4b,[B@48cf6e81), ([B@2a5ffc7f,[B@3ba0b95,[B@2b4e651c), ([B@27d0277a,[B@52cfcf01,[B@491f7520), ([B@3042ad61,[B@6984d407,[B@f7c4db0), ([B@29d065c1,[B@30c87759,[B@39138d14), ([B@32933952,[B@5f98506e,[B@8c896ca), ([B@2923ac47,[B@65037e6a,[B@486094f5), ([B@3cd385f2,[B@62fef210,[B@4fc62b36), ([B@5b3f0f24,[B@8fb3349,[B@23e4023a), ([B@4e4e403e,[B@735bce9b,[B@10595d48), ([B@5afb2a5a,[B@1f99a960,[B@213eedd5), ([B@2a704c00,[B@328da9c4,[B@72849cc9), ([B@60518adb,[B@9736144,[B@75f6bc34)])
对于每条记录(行键和列)
但我需要的是得到所有键和值的字符串表示。或者至少是价值观。为了把它保存到一个文件中
key1,(value1,value2...)
或者类似的
key1,value1,value2...
我对spark和scala完全陌生,很难找到什么。
你能帮我一下吗?
2条答案
按热度按时间7vhp5slm1#
首先让我们创建一些示例数据:
数据是这样的:
将其转换为
Array[Byte]
格式使用此数据创建rdd
创建转换函数
Array[Byte]
至String
:执行最终转换:
t8e9dugd2#
我不知道hbase,但如果
Array[Byte]
是unicode字符串,类似这样的操作应该可以:抱歉造型不好之类的,我甚至不确定它能不能用。