如何在Spark JavaPairRDD.saveAsNewAPIHadoopDataset中使用HBase的HFileOutputFormat类?

时间:2014-09-19 11:32:47

标签: hbase apache-spark bulk-load

我正在尝试将Spark JavaPairRDD的内容批量加载到HBase表。

似乎使用带有HFileOutputFormat的JavaPairRDD.saveAsNewAPIHadoopDataSet是正确的方法。

是否有示例代码?

1 个答案:

答案 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获取工作示例的完整代码。