我想从我的大.xdf文件trans.xdf中删除重复的记录。以下是文件详细信息:
File name: /poc/revor/data/trans.xdf
Number of observations: 1000000000
Number of variables: 5
Number of blocks: 40
Compression type: zlib
Variable information:
Var 1: CARD_ID, Type: character
Var 2: SE_NO, Type: character
Var 3: r12m_cv, Type: numeric, Low/High: (-2348.7600, 40587.3900)
Var 4: r12m_roc, Type: numeric, Low/High: (0.0000, 231.0000)
Var 5: PROD_GRP_CD, Type: character
下面是文件的示例数据:
CARD_ID SE_NO r12m_cv r12m_roc PROD_GRP_CD
900000999000000000 1045815024 110 1 1
900000999000000000 1052487253 247.52 2 1
900000999000000000 9999999999 38.72 1 1
900000999000000000 1090389768 1679.96 16 1
900000999000000000 1091226035 0 1 1
900000999000000000 1091241208 538.68 4 1
900000999000000000 9999999999 83 1 1
900000999000000000 1091468041 148.4 3 1
900000999000000000 1092640358 3.13 1 1
900000999000000000 1093468692 546.29 1 1
我曾尝试使用rxdatastep函数使用其transform参数在.xdf文件上调用unique()函数。以下是相同的代码:
uniq_dat <- function( dataList )
{
datalist <- unique(datalist)
return(datalist)
}
rxDataStepXdf(inFile = "/poc/revor/data/trans.xdf",outFile = "/poc/revor/data/trans.xdf",transformFunc = uniq_dat,overwrite = TRUE)
但得到以下错误:
Error in unique(datalist) : object 'datalist' not found
Error in transformation function: Error in unique(datalist) : object 'datalist' not found
Error in rxCall("RxDataStep", params) :
所以任何人都可以指出我在这里犯的错误,或者是否有更好的方法从.xdf文件中删除重复记录。我避免将数据加载到内存Dataframe中,因为数据非常庞大。
我正在hdfs上的revolutionr环境中运行上述代码。
如果可以通过任何其他方法获得相同的结果,那么将欣赏用于相同的示例。
提前感谢您的帮助:)
干杯,
阿密特
1条答案
按热度按时间ftf50wuq1#
可以为rxsort()函数提供removedupkeys=true参数来删除重复的值。例如,对于您的案例:
如果要删除基于特定键列的重复记录,例如,基于se\u no列,请将键值设置为sortbyvars=“se\u no”