2015-08-26 19 views
0

我對Cassandra的一些數據具有以下數據模型:生成單行火花多行

transaction_id : uuid 
start_date: timestamp 
end_date: timestamp 
PRIMARY KEY(transaction_id) 

現在我想這個數據變成了一句:

aggregation_date : timestamp 
number_of_active_transaction_0 : int 
number_of_active_transaction_1 : int 
number_of_active_transaction_2 : int 
... 
number_of_open_transaction_23 : int 
PRIMARY KEY((aggregation_date)) 

目前,我有創建了一個函數,該函數接受開始日期和結束日期,並在事務處於活動狀態時返回transaction_date(僅日期部分)和24值大小的數組1的數組,並將原始RDD映射到具有transaction_date的PairRDD(只是日期部分)作爲鍵和數組作爲值即在此之後,執行鍵減少並添加數組的所有單個元素以獲得所需的輸出。

現在的問題是,有些情況下,事務在深夜啓動,並在午夜後完成,所以在這種情況下,我想從我的函數返回2行,這樣對於每個事務,我在返回的2行RDD。

星火版本:1.2.2
使用API​​是斯卡拉
星火卡桑德拉連接器版本1.2.2

+0

我不是在電腦前,但平板地圖呢? –

回答

0

你可能會希望使用flatMap,與flatMap可以輸出多個(包括零)對每個元素輸入。

但是你還別說,你正在執行鍵上的減少,如果在這個階段,當你需要輸出多個元素,你可以只是reduceByKey期間產生的列表,然後就做一個身份flatMap,這將拼合所有結果。