¿Hay alguna manera de mantener una variable (cuadro grande / marco de datos) en la memoria y compartirla en múltiples computadoras portátiles ipython?
Estaría buscando algo, que es conceptualmente similar a las variables persistentes de MATLAB. Allí es posible llamar a una función / biblioteca personalizada desde múltiples editores individuales (cuadernos), y hacer que esa función externa guarde algún resultado (o tabla grande).
Principalmente, me gustaría evitar volver a cargar una tabla muy utilizada (que se carga a través de una biblioteca personalizada que se llama desde los cuadernos), ya que leerla toma alrededor de 2-3 minutos cada vez que comienzo un nuevo análisis.
Respuestas:
Si es importante para sus casos de uso, puede intentar cambiar a Apache Zeppelin. Como todos los portátiles de Spark comparten el mismo contexto de Spark, el mismo entorno de ejecución de Python. https://zeppelin.apache.org/
Entonces, lo que estás pidiendo sucede de forma nativa en Zeppelin. O para completar, es una opción para compartir el mismo contexto de Spark / el mismo entorno de Python entre todos los cuadernos de Spark (se llaman 'notas' en Zeppelin):
Por lo tanto, puede elegir compartir contexto globalmente (comportamiento predeterminado de Zeppelin), por nota (el único comportamiento posible de Jupyter) o por usuario.
Si no puede / no desea cambiar a Zeppelin, busque otras opciones para compartir marcos de datos comunes entre sus computadoras portátiles usando:
PD. No puede importar archivos ipynb a Zeppelin actualmente (tiene su propio formato de cuaderno almacenado como un archivo json), hasta que se implemente https://issues.apache.org/jira/browse/ZEPPELIN-1793 ; aunque no es tan difícil convertirlos manualmente en la mayoría de los casos.
fuente