我正在尝试将Spark JavaPairRDD的内容批量加载到HBase表。
似乎使用带有HFileOutputFormat的JavaPairRDD.saveAsNewAPIHadoopDataSet是正确的方法。
是否有示例代码?
答案 0 :(得分:0)
考虑一个包含单行的RDD:
{"id":3,"name":"Moony","color":"grey","description":"Monochrome kitty"}
转换RDD
我们需要将RDD转换为具有以下内容的(键,值)对:
(rowkey,[row key,column family,column name,value])
datamap = rdd.map(lambda x: (str(json.loads(x)["id"]),[str(json.loads(x)["id"]),"cfamily","cats_json",x]))
保存到HBase
我们可以使用本示例中使用的RDD.saveAsNewAPIHadoopDataset
函数:PySpark Hbase example将RDD保存到HBase
?
datamap.saveAsNewAPIHadoopDataset(conf=conf,keyConverter=keyConv,valueConverter=valueConv)
您可以参考我的博客:pyspark-sparkstreaming hbase获取工作示例的完整代码。