2016-07-01 39 views
0

我有一個數據框有5億個條目,有些是重複的。服務器可以將數據幀保存在內存中,但不會出現任何問題,但所有嘗試應用unique()函數都會結束服務器凍結。爲巨大的數據幀獲取唯一條目

數據幀具有以下格式:

"id_A","id_B_C" 
"1068095976599746","137459917707_10151666538852708" 
"964549956973805","137459917707_10151666538852708" 
"10154089033126355","137459917707_10151666538852708" 
"548826058653873","137459917707_10151666538852708" 
"1048575401891319","137459917707_10151666538852708" 
"10209663598697145","137459917707_10151666538852708" 
"10209718419385277","137459917707_10151666538852708" 

的條目(每行)不具有一個唯一的ID,所以ID_A和id_B_C的統一使一個唯一的條目號。我知道我可以通過分割基於id_A或id_B_C的數據框來應用獨特的功能,但唯一ID的數量仍然在1億左右。

是否有更好的方式來刪除重複的條目?

+1

你有一個data.frame或矩陣? – akrun

+0

你應該使用'data.table'或者data.frame之外的東西。另外,你能否澄清你的意思:「我可以通過分割基於id_A或id_B_C的數據框來應用獨特的功能,但每個ID的唯一ID數仍在1億左右。」?您不是指通過*組合*這兩列,而是通過*以某種方式拆分數據?你能不能展示代碼來解釋你在說什麼? –

+1

另外,從實際的角度來看,我沒有看到將R用於更適合關係數據庫的理由。爲什麼不只是在SQL中進行預處理或者什麼,然後將結果發送給R? R並非真正用於大數據的ETL。 –

回答

0

ff軟件包允許您在不將數據加載到RAM的情況下使用數據框。我不確定這將如何與重複或獨特的功能進行交互,但它可能會緩解您的內存使用量。