我有一個表格,其結構如下。Apache Phoenix on Spark - 無法插入到Phoenix HBase表格/需要建議的最佳做法
trans_count
start_time, end_time, count
00:00:01 00:00:10 1000
00:00:11 00:00:20 800
星火偵聽來自卡夫卡事件,並做了分組10秒,將要插入到鳳凰HBase的表。
10秒後,我必須先檢查start_time,end_time組合是否在表格中。如果它在那裏,我們必須採取現有的計數並添加新的計數並再次插入。
UPSERT INTO trans_count(start_time, end_time, count) SELECT start_time, end_time, count? FROM trans_count WHERE start_time = ? AND end_time = ?
如果在上述語句中沒有插入行,則只需插入數據。
在Apache Storm中,我能夠在configure方法中創建一個Phoenix Connection對象,並且能夠每10秒向UPSERT使用一次相同的連接。
在Spark中,我無法創建連接對象,併爲RDD中的每個對象使用相同的對象。 Spark的輸出將是一個JavaDStream>,其中start_time,end_time,count是Map中的所有鍵。
我最終爲RDD的每次迭代創建一個連接對象,我覺得這不是正確的方法。我已經讀過鳳凰連接重量輕但爲每個RDD創建連接對象似乎不是正確的方法。
我閱讀了一些關於相關內容的博客,但無法實現。請幫助。
注:該應用程序是在JAVA中構建的。