Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Bienvenido a esta primera edición de Spark: ¡ La Guía Definitiva! Nos complace ofrecerte el recurso más completo sobre Apache Spark en la actualidad, centrándonos especialmente en la nueva generación de API Spark introducidas en Spark 2.0.
Apache Spark es actualmente uno de los sistemas más populares para el procesamiento de datos a gran escala, con API en múltiples lenguajes de programación y una gran cantidad de bibliotecas integradas y de terceros. Aunque el proyecto existe desde hace varios años -primero como proyecto de investigación iniciado en la UC Berkeley en 2009, y luego en la Apache Software Foundation desde 2013-, la comunidad de código abierto sigue construyendo API más potentes y bibliotecas de alto nivel sobre Spark, por lo que aún queda mucho por escribir sobre el proyecto. En decidimos escribir este libro por dos razones. En primer lugar, queríamos presentar el libro más completo sobre Apache Spark, cubriendo todos los casos de uso fundamentales con ejemplos fáciles de ejecutar. En segundo lugar, queríamos explorar especialmente las API "estructuradas" de alto nivel que se finalizaron en Apache Spark 2.0 -a saber, DataFrames, Datasets, Spark SQL y Structured Streaming-, que los libros más antiguos sobre Spark no siempre incluyen. Esperamos que este libro te proporcione una base sólida para escribir aplicaciones Apache Spark modernas utilizando todas las herramientas disponibles en el proyecto.
En este prefacio, te hablaremos un poco de nuestros antecedentes y te explicaremos a quién va dirigido este libro y cómo hemos organizado el material. También queremos dar las gracias a las numerosas personas que han ayudado a editar y revisar este libro, sin las cuales no habría sido posible.
Sobre los autores
Los dos autores del libro llevan mucho tiempo trabajando en Apache Spark, así que estamos muy contentos de poder ofrecerte este libro.
Bill Chambers empezó a utilizar Spark en 2014 en varios proyectos de investigación. Actualmente, Bill es Director de Producto en Databricks, donde se centra en permitir a los usuarios escribir varios tipos de aplicaciones Apache Spark. Bill también escribe regularmente en blogs sobre Spark y participa en conferencias y reuniones sobre el tema. Bill tiene un Máster en Gestión y Sistemas de la Información por la Escuela de Información de la UC Berkeley.
Matei Zaharia inició el proyecto Spark en 2009, durante su época de estudiante de doctorado en la UC Berkeley. Matei trabajó con otros investigadores de Berkeley y colaboradores externos para diseñar el núcleo de las API de Spark y hacer crecer la comunidad Spark, y ha seguido participando en nuevas iniciativas como las API estructuradas y el Streaming Estructurado. En 2013, Matei y otros miembros del equipo Spark de Berkeley cofundaron Databricks para hacer crecer aún más el proyecto de código abierto y proporcionar ofertas comerciales en torno a él. En la actualidad, Matei sigue trabajando como Tecnólogo Jefe en Databricks, y también ocupa un puesto como Profesor Adjunto de Informática en la Universidad de Stanford, donde investiga sobre sistemas a gran escala e IA. Matei se doctoró en Informática por la UC Berkeley en 2013.
A quién va dirigido este libro
Hemos diseñado este libro principalmente para científicos de datos e ingenieros de datos que deseen utilizar Apache Spark. Los dos papeles tienen necesidades ligeramente diferentes, pero en realidad, la mayoría del desarrollo de aplicaciones abarca un poco de ambos, por lo que creemos que el material será útil en ambos casos. Específicamente, en nuestra mente, la carga de trabajo del científico de datos se centra más en la consulta interactiva de datos para responder preguntas y construir modelos estadísticos, mientras que el trabajo del ingeniero de datos se centra en escribir aplicaciones de producción mantenibles y repetibles, ya sea para utilizar los modelos del científico de datos en la práctica, o simplemente para preparar los datos para su posterior análisis (por ejemplo, la construcción de una tubería de ingesta de datos). Sin embargo, a menudo vemos con Spark que estos papeles se difuminan. Por ejemplo, los científicos de datos pueden empaquetar aplicaciones de producción sin demasiadas complicaciones y los ingenieros de datos utilizan el análisis interactivo para comprender e inspeccionar sus datos para construir y mantener canalizaciones.
Aunque hemos intentado proporcionar todo lo que los científicos e ingenieros de datos necesitan para empezar, hay algunas cosas en las que no hemos tenido espacio para centrarnos en este libro. En primer lugar, este libro no incluye introducciones en profundidad a algunas de las técnicas analíticas que puedes utilizar en Apache Spark, como el aprendizaje automático. En su lugar, te mostramos cómo invocar estas técnicas utilizando bibliotecas en Spark, suponiendo que ya tienes una formación básica en aprendizaje automático. Existen muchos libros completos e independientes que cubren estas técnicas con detalle formal, así que te recomendamos que empieces por ellos si quieres aprender sobre estas áreas. En segundo lugar, este libro se centra más en el desarrollo de aplicaciones que en las operaciones y la administración (por ejemplo, cómo gestionar un clúster Apache Spark con docenas de usuarios). No obstante, hemos intentado incluir material exhaustivo sobre monitoreo, depuración y configuración en las Partes V y VI del libro, para ayudar a los ingenieros a conseguir que su aplicación funcione de forma eficiente y abordar el mantenimiento cotidiano. Por último, este libro hace menos hincapié en las API más antiguas y de menor nivel de Spark -específicamente RDD y DStreams- para introducir la mayoría de los conceptos que utilizan las API estructuradas más nuevas y de mayor nivel. Por lo tanto, el libro puede no ser el más adecuado si necesitas mantener una antigua aplicación RDD o DStream, pero debería ser una gran introducción para escribir nuevas aplicaciones.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
En estamos muy contentos de haber diseñado este libro de modo que todo el contenido del código se pueda ejecutar con datos reales. Hemos escrito todo el libro utilizando cuadernos Databricks y hemos publicado los datos y el material relacionado en GitHub. Esto significa que puedes ejecutar y editar todo el código mientras lo sigues, o copiarlo en código de trabajo en tus propias aplicaciones.
Hemos intentado utilizar datos reales siempre que ha sido posible para ilustrar los retos con los que te encontrarás al crear aplicaciones de datos a gran escala. Por último, también incluimos varias aplicaciones independientes de mayor tamaño en el repositorio GitHub del libro para ejemplos que no tiene sentido mostrar en línea en el texto.
El repositorio de GitHub seguirá siendo un documento vivo que iremos actualizando en función del progreso de Spark. Asegúrate de seguir las actualizaciones allí.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir un CD-ROM de ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
En agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo: "Spark: La guía definitiva", de Bill Chambers y Matei Zaharia (O'Reilly). Copyright 2018 Databricks, Inc., 978-1-491-91221-8".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Safari O'Reilly
Nota
Safari (antes Safari Books Online) es una plataforma de formación y referencia basada en membresías para empresas, administraciones públicas, educadores y particulares.
Los miembros tienen acceso a miles de libros, vídeos de formación, rutas de aprendizaje, tutoriales interactivos y listas de reproducción de más de 250 editoriales, como O'Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, Jones & Bartlett y Course Technology, entre otras. Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett y Course Technology, entre otras.
Para más información, visita http://oreilly.com/safari.
Cómo contactar con nosotros
Por favor, dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Para hacer comentarios o preguntas técnicas sobre este libro, envía un correo electrónico a bookquestions@oreilly.com.
Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://www.youtube.com/oreillymedia
Agradecimientos
En hubo un gran número de personas que hicieron posible este libro.
En primer lugar, nos gustaría dar las gracias a nuestra empresa, Databricks, por asignarnos tiempo para trabajar en este libro. Sin el apoyo de la empresa, este libro no habría sido posible. En particular, nos gustaría dar las gracias a Ali Ghodsi, Ion Stoica y Patrick Wendell por su apoyo.
Además, hay numerosas personas que leyeron borradores del libro y capítulos individuales. Nuestros revisores fueron los mejores de su clase, y nos proporcionaron comentarios inestimables.
Estos revisores, en orden alfabético por apellido, son:
-
Lynn Armstrong
-
Mikio Braun
-
Jules Damji
-
Denny Lee
-
Alex Thomas
Además de los revisores formales del libro, hubo otros muchos usuarios de Spark, colaboradores y committers que leyeron capítulos concretos o ayudaron a formular cómo debían tratarse los temas. En orden alfabético por apellido, las personas que ayudaron son:
-
Sameer Agarwal
-
Bagrat Amirbekian
-
Michael Armbrust
-
Joseph Bradley
-
Tathagata Das
-
Hossein Falaki
-
Ventilador Wenchen
-
Sue Ann Hong
-
Yin Huai
-
Tim Hunter
-
Xiao Li
-
Cheng Lian
-
Xiangrui Meng
-
Kris Mok
-
Josh Rosen
-
Srinath Shankar
-
Takuya Ueshin
-
Herman van Hövell
-
Reynold Xin
-
Philip Yang
-
Burak Yavuz
-
Shixiong Zhu
Por último, nos gustaría dar las gracias a amigos, familiares y seres queridos. Sin su apoyo, paciencia y ánimo, no habríamos podido escribir la guía definitiva de Spark.
Get Spark: La Guía Definitiva now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.