0
我使用spark-streaming python讀取kafka並寫入到hbase,我發現saveAsNewAPIHadoopDataset的舞臺上的作業很容易被阻止。如下圖所示: 在這個階段你會發現持續時間爲8小時。 Spark是通過Hbase api寫入數據還是直接通過HDFS api寫入數據? 火花流寫入數據到HBase與python阻止saveAsNewAPIHadoopDataset
我使用spark-streaming python讀取kafka並寫入到hbase,我發現saveAsNewAPIHadoopDataset的舞臺上的作業很容易被阻止。如下圖所示: 在這個階段你會發現持續時間爲8小時。 Spark是通過Hbase api寫入數據還是直接通過HDFS api寫入數據? 火花流寫入數據到HBase與python阻止saveAsNewAPIHadoopDataset
晚了一點,但這裏是一個類似的例子 要保存RDD到HBase的:
考慮包含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的工作示例的完整代碼。