2017-06-02 124 views
1

過去兩天我一直在嘗試使用RxImport函數將大型CSV(9演出)轉換爲XDF格式,但未取得成功。rxImport在大型數據集上失敗

這個過程似乎開始很順利,R服務器按塊讀取數據塊,但幾分鐘後它慢慢爬行,然後在6小時後完全失效,Windows停止服務器說它耗盡RAM 。

我正在使用的代碼如下:

pd_in_file <- RxTextData("cca_pd_entity.csv", delimiter = ",") #file to import 
pd_out_file <- file.path("cca_pd_entity.xdf") #desired output file 
pd_data <- rxImport(inData = pd_in_file, outFile = pd_out_file, 
stringsAsFactors = TRUE, overwrite = TRUE) 

我運行微軟R服務器,版本9.0.1。在一臺裝有16G RAM的Windows 7機器上。

感謝

+0

看看設置'colInfo'參數是否有幫助 –

+0

謝謝你的建議我會試一試。我有近300列數據,因此假設我可以導入數據的一個子集並使用rxGetVarInfo命令提取列信息並將其傳遞到rxImport命令,而不是分別手動指定每列,這是否正確? –

+0

它的工作! Arg這真棒:D謝謝謝謝,謝謝 –

回答

2

它採用了大井香的建議設置在rxTextData的COLINFO解決。我不確定它爲什麼會產生如此巨大的差異,但是在幾個小時之前它完全無法導入時,它在不到2分鐘內轉換了整個9gig數據集。

+0

你把colInfo參數設置爲什麼? – gibbz00

+1

@ gibbz00 - 我從CSV導入了一個數據樣本,然後分配了ColumnInfo < - rxGetVarInfo(sample_data)。然後,當在rxDataStep(或rxImport)中導入時,我通過了「colInfo = ColumnInfo」。這工作得很好。 –