2017-06-02 68 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”。这工作得很好。 –