Ciencia de Datos y la JVM - Parte 1: Instalando Rapaio Jupyter Kernel!
Bienvenidos a una corta serie de 3 o 4 artículos donde vamos a sumergirnos en el universo de la ciencia de datos, todo esto, usando lenguajes que corren en la JVM (de preferencia Java directamente, si se puede). Vamos a explorar, jugar y aprender algunos trucos nuevos con los datos y todo lo que podemos hacer con ellos en la JVM. Pero no solo vamos a quedarnos ahí; después de explorar lo que es posible con la JVM y la ciencia de datos, voy a tratar de utilizarla para iluminar el misterioso y a veces confuso mundo de las estimaciones de proyectos. Usando "distribuciones de probabilidad de cola gorda", vamos a explorar la idea de que proyectos complejos, como los de software, necesariamente son impredecibles.
La JVM y la Ciencia de Datos
Aunque Python ha sido ampliamente reconocido en la ciencia de datos, el ecosistema de la JVM ha cultivado algunas herramientas y bibliotecas para la ciencia de datos, incluyendo:
- Notebooks Para montar un ambiente interactivo para la exploración de datos (por ejemplo Rapaio, BeakerX, Kotlin for data Science, etc)
- DataFrames Bibliotecas para de manipulación de datos en Java que proporciona la capacidad de crear, transformar, filtrar y visualizar datos tabulares. (por ejemplo TableSaw, Kotlin Dataframes, Spark, etc)
- Bibliotecas de algoritmos Proveen algoritmos para analisis estadistico y de aprendizaje de maquina preempaquetados (por ejemplo D4J, Weka, Breeze, Figaro, etc)
- Etc,etc
Los ambientes que podriamos utilizar
Ante de empezar a escribir esta serie, solo habia utilizado Python para hacer ciencia de datos. Pero esto es JavaMexico asi que decidi explorar como podia montar un entorno de exploracion interactivo para la JVM. Lo que encontre, debo admitir, es un poco descorazonador ya que si bien la comunidad opensource sigue empujando para crear ambientes interactivos, la mitad de los proyectos que encontre parecen estar estancados o un estado de muy lenta progresion:
-
Apache Zeppelin
- Estado del Proyecto: Actualizaciones hace menos de un mes en GitHub, pero el último binario liberado fue en 2022
- Funcional?: No, tanto la instalación directa como Docker no funcionaron
-
Beaker X
- Estado del Proyecto: Sin actualizaciones en GitHub desde hace 3 años
- Funcional?: Sí (Scala y Groovy) pero Java no funcionó
-
IJava
- Estado del Proyecto: Sin actualizaciones desde hace 4 años
- Funcional?: No
-
Kotlin for Data Science
- Estado del Proyecto: Actualizaciones hace unas pocas horas
- Funcional?: Sí
-
Rapaio Jupyter Kernel
- Estado del Proyecto: Actualizaciones la semana pasada
- Funcional?: Sí, compatible con Java >= 20!
Instalando Rapaio
Primero, vamos a crear un ambiente en Python para trabajar con el (el nombre "jvmenv" es completamete arbitrario :
lo "activamos" para que sea el ambiente con el cual trabajaremos
luego instalemos Rapaio
Lo cual producira lo siguiente en to consola, si todo salio bien :
Arrancamos Jupyter
Visitamos jupyter en navegador
Y creamos un notebook con "Java JRK" como Kernel y probamos un simple 1+1 y "Hello World"
.
Si todo ha salido bien, podremos inclusive utilizar el soporte para Jupyter y Java provisto por VSCode!:
Lo que nos espera
A lo largo de esta serie, nos embarcaremos en un viaje donde la ciencia de datos se encuentra con la JVM, explorando tanto teorías como aplicaciones prácticas. La intención es iluminar los caminos de la ciencia de datos en el ecosistema de JVM y, por último, investigar cómo este conocimiento puede ser aplicado para comprender los enigmas de la estimación de proyectos complejos.
En la siguiente entrega, nos zambulliremos en el mundo del análisis exploratorio de datos con JVM, presentando tanto las metodologías como las herramientas que serán de utilidad para los entusiastas y profesionales de la ciencia de datos en la comunidad Java.
Espero que este inicio de serie sea un punto de partida para explorar, aprender y compartir conocimientos sobre la ciencia de datos y la estimación de proyectos en la JVM. ¡Nos vemos en la próxima entrega!
- luxspes's blog
- Inicie sesión o regístrese para enviar comentarios