Problema: rxImport() - "Impossibile allocare XXXXXXXXX byte".

Lavora ovunque da qualsiasi dispositivo con Microsoft 365

Eseguire l'aggiornamento a Microsoft 365 per lavorare in qualsiasi luogo con le funzionalità e gli aggiornamenti più recenti.

Aggiorna adesso

Si tratta di un errore di allocazione della memoria generale. Il problema di solito è che tenta di leggere contemporaneamente troppe righe del file di dati per elaborare i dati in memoria per un singolo blocco di dati R rivoluzione.

Provare quanto segue, per risolvere il problema:

Impostare un valore basso per l'argomento 'rowsPerRead' nell'istruzione rxImport(). Provare con un valore inferiore o pari a "10000". Potrebbe essere necessario provare impostazioni diverse per

Questa opzione per trovare un valore che funziona bene e al più presto i dati importati.

 

Se il problema persiste e il file csv include molte colonne, può essere utile per importare le colonne di dati 'x' contemporaneamente. Ad esempio, se il dataset come 5000 colonne, è consigliabile importare i dati per 50 colonne alla volta e scrivere i dati per un nuovo file XDF 50 colonne e aggiungere al file XDF esistente.

Di seguito è riportato un codice di esempio R per eseguire questa operazione:

varNames <- readLines("mycsv.txt", n=1) colsPerRead <- 50   ## Set how many columns to read from the csv file at a time. You may want to initially set this to a larger value, say 100. 
numReadsFromFile <- length(varNames/colsPerRead)

for (i in 1:numReadsFromFile) 

 tempdf <- rxImport(inData = "C:/MyRData/data.csv", varsToKeep = paste(varNames[((i-1)*colsPerRead)+1:(((i-1)*colsPerRead)+1)+colsPerRead], sep = ","), 
 rowsPerRead = 10000) 
 rxDataFrameToXdf(data = tempdf, ouFile = "C:/MyRData/data.xdf", append = "cols") 
}


Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×