Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Hemos escrito este libro para ingenieros de datos y científicos de datos que buscan sacar el máximo partido a Spark. Si has estado trabajando con Spark y has invertido en él, pero tu experiencia hasta ahora ha estado plagada de errores de memoria y fallos misteriosos e intermitentes, este libro es para ti. Si has estado utilizando Spark para algún trabajo exploratorio o experimentando con él por tu cuenta, pero no te has sentido lo suficientemente seguro como para ponerlo en producción, este libro puede ayudarte. Si estás entusiasmado con Spark pero no has visto en él las mejoras de rendimiento que esperabas, esperamos que este libro pueda ayudarte. Este libro está dirigido a quienes tengan algún conocimiento práctico de Spark, y puede resultar difícil de entender para quienes tengan poca o ninguna experiencia con Spark o la informática distribuida. Para recomendaciones de bibliografía más introductoria, consulta "Libros y materiales de apoyo".

Esperamos que este texto sea más útil para quienes se preocupan por optimizar las consultas repetidas en producción, que para quienes realizan principalmente trabajo exploratorio. Aunque escribir consultas de alto rendimiento sea quizás más importante para el ingeniero de datos, escribir esas consultas con Spark, a diferencia de otros marcos, requiere un buen conocimiento de los datos, normalmente más intuitivo para el científico de datos. Por lo tanto, puede ser más útil para un ingeniero de datos que tenga menos experiencia en pensar de forma crítica sobre la naturaleza estadística, la distribución y la disposición de los datos a la hora de considerar el rendimiento. Esperamos que este libro ayude a los ingenieros de datos a pensar de forma más crítica sobre sus datos cuando pongan en producción pipelines. Queremos ayudar a nuestros lectores a plantearse preguntas como "¿Cómo se distribuyen mis datos?", "¿Están sesgados?", "¿Cuál es el rango de valores de una columna?" y "¿Cómo esperamos que se agrupe un valor determinado?", y luego aplicar las respuestas a esas preguntas a la lógica de sus consultas Spark.

Sin embargo, incluso para los científicos de datos que utilicen Spark principalmente con fines exploratorios, este libro debería cultivar algunas intuiciones importantes sobre la escritura de consultas Spark de alto rendimiento, de modo que, a medida que la escala del análisis exploratorio crezca inevitablemente, puedas tener más posibilidades de conseguir que algo se ejecute a la primera. Esperamos guiar a los científicos de datos, incluso a los que ya se sienten cómodos pensando en los datos de forma distribuida, para que piensen de forma crítica sobre cómo se evalúan sus programas, capacitándoles para explorar sus datos de forma más completa y rápida, y para comunicarse eficazmente con cualquiera que les ayude a poner sus algoritmos en producción.

Independientemente de tu cargo, es probable que la cantidad de datos con los que trabajas crezca rápidamente. Es posible que tus soluciones originales deban escalarse, y que tus antiguas técnicas para resolver nuevos problemas deban actualizarse. Esperamos que este libro te ayude a aprovechar Apache Spark para abordar nuevos problemas con más facilidad y viejos problemas con más eficacia.

Notas de la primera edición

Estás leyendo la primera edición de Chispa de alto rendimiento y, por ello, ¡te damos las gracias! Si encuentras errores, fallos o tienes ideas para mejorar este libro, ponte en contacto con nosotros en Si deseas que se te incluya en una sección de "agradecimientos" en futuras ediciones del libro, por favor, incluye tu nombre para mostrar preferido.

Libros y materiales de apoyo

Para los científicos de datos y desarrolladores noveles en Spark, Learning Spark de Karau, Konwinski, Wendell y Zaharia es una excelente introducción,1 y Advanced Analytics with Spark de Sandy Ryza, Uri Laserson, Sean Owen y Josh Wills es un gran libro para los científicos de datos interesados. Para las personas más interesadas en el streaming, el próximo Learning Spark Streaming de François Garillot también puede ser de utilidad una vez que esté disponible.

Más allá de los libros, también hay disponible una colección de material de formación sobre Spark de nivel introductorio. Para quienes prefieran el vídeo, Paco Nathan tiene una excelente serie de vídeos de introducción en O'Reilly. Comercialmente, Databricks, así como Cloudera y otros proveedores de Hadoop/Spark, ofrecen formación sobre Spark. En la página de documentación de Apache Spark se han publicado grabaciones anteriores de campamentos Spark, así como muchos otros recursos estupendos.

Si no tienes experiencia con Scala, haremos todo lo posible para convencerte de que te hagas con Scala en el Capítulo 1, y si estás interesado en aprender, Programming Scala, 2ª Edición, de Dean Wampler y Alex Payne es una buena introducción.2

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.

Advertencia

Los ejemplos que llevan el prefijo "Mal" dependen en gran medida de las funciones internas de Apache Spark, y es probable que se rompan en futuras versiones menores de Apache Spark. Estás avisado, pero entendemos perfectamente que no vayas a prestar mucha atención a esto, porque nosotros tampoco lo haríamos.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) está disponible para su descarga en el repositorio de GitHub de Spark de alto rendimientoy parte del código de pruebas está disponible en el repositorio de GitHub "Spark Testing Base"y en el repositorio de Spark Validator. Los ejemplos de aprendizaje automático de flujo estructurado, que en general pertenecen a la categoría "maligno" que se trata en "Convenciones utilizadas en este libro", están disponibles en https://github.com/holdenk/spark-structured-streaming-ml.

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. El código también está disponible bajo una Licencia Apache 2. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto puede requerir permiso.

Agradecemos, pero no exigimos, la atribución. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "High Performance Spark por Holden Karau y Rachel Warren (O'Reilly). Copyright 2017 Holden Karau, Rachel Warren, 978-1-491-94320-5".

Si crees que el uso que haces de los ejemplos de código queda fuera del uso justo o del permiso dado anteriormente, no dudes en ponerte en contacto con nosotros en

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 los autores

Para hacernos llegar tus comentarios, envíanos un correo electrónico a Para divagaciones aleatorias, ocasionalmente sobre Spark, síguenos en twitter:

Holden: http://twitter.com/holdenkarau

Rachel: https://twitter.com/warre_n_peace

Cómo contactar con nosotros

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

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

Los autores desean expresar su agradecimiento a todas las personas que han colaborado con comentarios y sugerencias sobre los primeros borradores de nuestro trabajo. Un agradecimiento especial a Anya Bida, Jakob Odersky y Katharine Kearnan por revisar los primeros borradores y diagramas. Nos gustaría dar las gracias a Mahmoud Hanafy por revisar y mejorar el código de muestra, así como los primeros borradores. También nos gustaría dar las gracias a Michael Armbrust por revisar y proporcionar comentarios sobre los primeros borradores del capítulo SQL. Justin Pihony ha sido uno de los primeros lectores más activos, sugiriendo correcciones en todos los aspectos (lenguaje, formato, etc.).

Gracias a todos los lectores de nuestra versión anticipada de O'Reilly que han aportado comentarios sobre varias erratas, incluidos Kanak Kshetri y Rubén Berenguel.

También nos gustaría dar las gracias a nuestros dedicados revisores técnicos (oficiales), Neelesh Srinivas Salian y Denny Lee, que leyeron todas las páginas y nos proporcionaron comentarios detallados y nos ayudaron a decidir qué contenido debía ir en cada lugar.

Por último, gracias a nuestros respectivos jefes por ser comprensivos mientras hemos trabajado en este libro. Especialmente a Lawrence Spracklen, que insistió en que le mencionáramos aquí :p.

1 Aunque podemos ser parciales.

2 Aunque es importante señalar que algunas de las prácticas sugeridas en este libro no son habituales en el código Spark.

Get Chispa de alto rendimiento 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.