2014-09-19 23 views
2

我試圖將Spark JavaPairRDD的內容批量加載到HBase表中。如何使用Spark JavaPairRDD.saveAsNewAPIHadoopDataset使用HFileOutputFormat類的HBase?

看來,使用JavaPairRDD.saveAsNewAPIHadoopDataSet與HFileOutputFormat是正確的方法。

是否有一個示例代碼?

+0

可以https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/HBaseTest.scala或https://github.com/apache/ spark/blob/master/examples/src/main/python/hbase_outputformat.py是* any * help? – 2014-09-20 23:55:20

回答

0

考慮包含單線上的RDD:

{"id":3,"name":"Moony","color":"grey","description":"Monochrome kitty"} 

變換的RDD
我們NEET到RDD轉變成(鍵,值)對具有下列內容:

( rowkey,[行鍵,列族,列名,值])

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的工作示例的完整代碼。

相關問題