Hola, estaba intentando crear una pila de series múltiples para un conjunto de datos (3,5 millones de filas y 225 columnas). Se produce un problema de desbordamiento de RAM (memoria insuficiente). Estoy usando 32 GB de RAM. ¿Hay alguna forma de hacerlo en serie para evitar el problema de memoria y obtener la tabla de datos esperada?
Una sola tabla de datos con 3,5 millones de filas y 225 columnas = 787,5 millones de filas me cuesta más de 12 GB. La tabla apilada normal tendrá 3,5 MX 225 = 787,5 millones de filas y dos columnas (siendo la segunda la etiqueta), que estarán fácilmente en el rango de alrededor de 20 GB, por lo que no coexistirán en 32 GB de RAM.
Sugiero la siguiente secuencia:
- Tome filas originales de 3,5 millones y datos de 225 columnas, guarde columnas individuales en archivos separados, uno a la vez. Y cierre el nuevo archivo cada vez que lo guarde. Cada archivo guardado tiene dos columnas, una es la serie, la otra es el indicador o etiqueta. Use tipo numérico para la etiqueta. En su caso, solo use 1 a 225. (Opcional, intente comprimir la columna de la etiqueta. Y la columna de compresión usará un campo de 2 bytes).
- Cierre el archivo original grande.
- Abra el primer archivo guardado con una columna. Luego concatene otros archivos individuales, uno a la vez, con "Agregar a la primera tabla" marcado. Y cierre todos los archivos individuales inmediatamente después de que se agreguen.
Intenté agregar 3,5 millones de filas y una tabla pequeña de 2 columnas a la tabla grande de 787,5 millones de filas y 2 columnas. El consumo de memoria superior de JMP a veces superó los 20 GB, pero sobrevivió y se redujo a ~ 18 GB o más después de que se realizó la concatenación. Y seguí agregando durante un par de rondas más, observé un comportamiento similar. Y veo un ahorro de memoria más sustancial si uso columnas comprimidas. De todos modos, parece que vale la pena intentarlo. ¡Buena suerte!
Por cierto, ¿cómo piensas analizar los datos? ¿Qué plataforma quieres usar?