2016-11-17 82 views
0

我有一個關於訂購日期時間RDD問題,發現其中包含的孔填充,例如,假設我們有這樣的記錄到我的數據庫:找到孔成一個DateTime火花RDD

20160410,"info1" 
20160409,"info2" 
20160407,"info3" 
20160404,"info4" 

基本上我的目的,我還需要孔,因爲它會在我的計算產生影響,所以我想是這樣的結尾:

Some(20160410,"info1") 
Some(20160409,"info2") 
None 
Some(20160407,"info3") 
None 
None 
Some(20160404,"info4") 

什麼是最好的策略,做到這一點?

這是一個小不完全摘錄代碼:

val records = bdao // RDD[(String,List[RecordPO])] 
     .findRecords  
     .filter(_.getRecDate >= startDate) 
     .filter(_.getRecDate < endDate) 
     .keyBy(_.getId) 
     .aggregateByKey(List[RecordPO]())((list, value) => value +: list, _ ++ _) 
... 
    /* transformations */ 
... 
val finalRecords=.... // RDD[(String,List[Option[RecordPO])] 

在此先感謝

回答

0

您需要創建要在結果數據集(例如看到所有日期的數據幀,從20160404所有日期到20160410)。然後執行此數據集的左外部連接與您的records,您將得到None您的預期。