
Scala for Data Science
Pascal Bugnion
- Editorial
- Packt
- Año
- 2016
- Páginas
- ~416
- Nivel
- Intermedio
De qué trata
Guía orientada al desarrollo de producción en la que Pascal Bugnion aborda cómo aprovechar el poder de Scala (versión 2.11) y su paradigma híbrido (funcional y orientado a objetos) para construir tuberías de ciencia de datos escalables, concurrentes y de alto rendimiento sobre la JVM. El libro está dirigido a programadores intermedios o avanzados que ya conocen la sintaxis de Scala o Java y desean especializarse en ingeniería de datos, computación distribuida y despliegue de modelos analíticos en sistemas reales.
El contenido recorre de forma progresiva herramientas analíticas y de ingeniería de datos: manipulación matricial y cálculo numérico con Breeze, paralelismo en memoria con colecciones paralelas y Futures, acceso funcional a bases de datos relacionales mediante Slick y JDBC, e ingesta desde MongoDB y APIs web RESTful (como la de GitHub). Posteriormente se adentra en la concurrencia distribuida con el modelo de actores de Akka y el procesamiento masivo con Apache Spark (RDDs, Spark SQL y DataFrames), aplicando algoritmos de clasificación y regresión distribuida con Spark MLlib. Finalmente, enseña a exponer los modelos analíticos mediante servicios web con el framework Play y a crear visualizaciones interactivas en el navegador conectando el backend con D3.js.
El libro destaca por guiar la construcción de proyectos completos y operativos de extremo a extremo: desde un recolector concurrente de APIs con actores en Akka y una canalización distribuida de detección de spam con Spark MLlib, hasta una aplicación web con Play Framework que sirve predicciones analíticas en tiempo real acompañadas de gráficos interactivos con D3.js. Es una obra sobresaliente porque no se limita al prototipado o al análisis en cuadernos interactivos, sino que enseña cómo se diseña software de ciencia de datos robusto y listo para producción. Como requisito, exige soltura con la programación funcional y conceptos de concurrencia en la JVM.
- Scala 2.11
- Breeze
- Apache Spark
- Spark SQL
- Spark MLlib
- Akka
- Slick
- Play Framework
- D3.js
- MongoDB
- Concurrencia
- Sistemas distribuidos
¿Cómo enseña?
Con proyectos
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Recolector concurrente de APIs web con Akka
Sistema asíncrono y tolerante a fallos que extrae y procesa datos en paralelo desde APIs web externas utilizando el modelo de actores de Akka y almacenamiento en MongoDB.
Pipeline distribuido de Machine Learning con Spark MLlib
Canalización de procesamiento por lotes a gran escala que procesa RDDs y DataFrames para entrenar y evaluar modelos de clasificación predictiva (como filtrado de spam) utilizando Apache Spark.
Servicio web de analítica y visualización con Play y D3.js
Aplicación web completa construida con el framework Play que expone modelos predictivos mediante una API REST y renderiza paneles de visualización interactivos en el frontend con D3.js.

