Prefacio

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

Spark se ha convertido en el estándar de facto para el análisis de datos a gran escala. Llevo utilizando y enseñando Spark desde su creación hace nueve años, y he visto enormes mejoras en los procesos de extracción, transformación y carga (ETL), en el desarrollo de algoritmos distribuidos y en el análisis de datos a gran escala. Empecé a utilizar Spark con Java, pero descubrí que, aunque el código es bastante estable, tienes que escribir largas líneas de código, que pueden llegar a ser ilegibles. Para este libro, decidí utilizar PySpark (una API de Python para Spark) porque es más fácil expresar la potencia de Spark en Python: el código es corto, legible y fácil de mantener. PySpark es potente pero sencillo de usar, y puedes expresar en él cualquier ETL o algoritmo distribuido con un simple conjunto de transformaciones y acciones.

Por qué escribí este libro

Este es un libro introductorio sobre el análisis de datos utilizando PySpark. El libro consiste en un conjunto de directrices y ejemplos destinados a ayudar a los ingenieros de software y datos a resolver problemas de datos de la forma más sencilla posible. Como sabes, hay muchas formas de resolver cualquier problema de datos: PySpark nos permite escribir código sencillo para problemas complejos. Éste es el lema que he intentado expresar en este libro: hazlo sencillo y utiliza parámetros para que tu solución pueda ser reutilizada por otros desarrolladores. Mi objetivo es enseñar a los lectores a pensar sobre los datos y a comprender sus orígenes y su forma final prevista, así como mostrar cómo utilizar patrones fundamentales de transformación de datos para resolver una gran variedad de problemas de datos.

A quién va dirigido este libro

Para utilizar este libro con eficacia, te será útil conocer los fundamentos del lenguaje de programación Python, como por ejemplo cómo utilizar condicionales (if-then-else), iterar a través de listas y definir y llamar a funciones. Sin embargo, si tu formación es en otro lenguaje de programación (como Java o Scala) y no conoces Python, podrás utilizar el libro, ya que he proporcionado una introducción razonable a Spark y PySpark.

Este libro está dirigido principalmente a personas que quieran analizar grandes cantidades de datos y desarrollar algoritmos distribuidos utilizando el motor Spark y PySpark. He proporcionado ejemplos sencillos que muestran cómo realizar operaciones ETL y escribir algoritmos distribuidos en PySpark. Los ejemplos de código están escritos de forma que puedas cortarlos y pegarlos para realizar el trabajo fácilmente.

El código de ejemplo proporcionado en GitHub es un gran recurso para empezar con tus propios proyectos de datos.

Cómo está organizado este libro

El libro consta de 12 capítulos, organizados en tres partes:

Parte I, "Fundamentos"

Los cuatro primeros capítulos cubren los fundamentos de Spark y PySpark e introducen transformaciones de datos como mapeadores, filtros y reductores. Contienen muchos ejemplos prácticos para que empieces a trabajar en tus propios proyectos PySpark. Aproximadamente el 95% de todos los problemas de datos pueden abordarse utilizando sencillas transformaciones de datos PySpark (como map(), flatMap(), filter(), y reduceByKey()) introducidas en los cuatro primeros capítulos de este libro. He aquí un vistazo más de cerca a lo que encontrarás aquí:

Parte II, "Trabajar con datos"

Los cuatro capítulos siguientes tratan de la partición de datos, los algoritmos de grafos, la lectura/escritura de datos de/a muchas fuentes de datos diferentes y los algoritmos de clasificación:

  • El Capítulo 5, "Partición de datos", presenta funciones para particionar físicamente los datos en columnas de datos específicas. Esta partición permitirá que tus consultas SQL (por ejemplo, en Amazon Athena o Google BigQuery) analicen una porción de los datos en lugar de todo el conjunto de datos, lo que mejorará el rendimiento de la consulta.

  • El Capítulo 6, "Algoritmos de grafos", presenta uno de los paquetes externos más importantes de Spark, GraphFrames, que puede utilizarse para analizar grandes grafos en el entorno distribuido de Spark.

  • El Capítulo 7, "Interacción con fuentes de datos externas", te muestra cómo leer datos de diversas fuentes de datos y escribirlos en ellas.

  • El Capítulo 8, "Algoritmos de clasificación", presenta dos importantes algoritmos de clasificación, el PageRank (utilizado en los motores de búsqueda) y el producto de clasificación (utilizado en el análisis genético).

Parte III, "Patrones de diseño de datos"

Los cuatro capítulos finales cubren patrones prácticos de diseño de datos, que se presentan de manera informal con ejemplos sólidos:

Capítulos adicionales

Como no quería hacer este libro demasiado voluminoso, he incluido material adicional sobre temas como TF-IDF, correlación y k-mers como capítulos extraen el repositorio GitHubdel libro.

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

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar enhttps://github.com/mahmoudparsian/data-algorithms-with-spark.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

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 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.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Algoritmos de Datos con Spark por Mahmoud Parsian (O'Reilly). Copyright 2022 Mahmoud Parsian, 978-1-492-08238-5".

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

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

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)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/data-algorithms-with-spark.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://youtube.com/oreillymedia

Agradecimientos

La idea de este libro partió de Jess Haberman (Editora Senior de Adquisiciones de O'Reilly Media), a quien estoy muy agradecida por habérmelo propuesto: ¡muchas gracias, Jess! Estoy en deuda con Melissa Potter (Editora de Desarrollo de Contenidos de O'Reilly Media), que ha trabajado incansablemente conmigo desde el inicio de este proyecto y me ha ayudado mucho a convertirlo en un libro mejor. ¡Muchas gracias, Melissa! Muchas gracias a la correctora, Rachel Head, que ha hecho un trabajo tremendo en la edición de todo el libro; si puedes leer y entender este libro, es gracias a Rachel. Quiero dar las gracias a Christopher Faucher (el editor de producción) por hacer un gran trabajo y asegurarse de que se cumplían los plazos y de que todo estaba en su sitio. Llevar un libro a través de la producción no es un trabajo nada fácil, pero Christopher ha hecho un trabajo magnífico.

Muchas gracias a los revisores técnicos Parviz Deyhim y Benjamin Muskalla por su cuidadosa revisión de mi libro, y por los comentarios, correcciones y sugerencias que se han derivado de ella. También me gustaría dar las gracias especialmente a mi asesor de doctorado y querido amigo, el Dr. Ramachandran Krishnaswamy, de quien he aprendido tanto; apreciaré mi amistad con él para siempre.

Además de las soluciones PySpark que he proporcionado para todos los capítulos en GitHub, Deepak Kumar y Biman Mandal han proporcionado soluciones Scala, lo que constituye un gran recurso para los lectores. Muchas gracias, Deepak y Biman. Por último, pero no por ello menos importante, quiero dar un enorme y chispeante agradecimiento al Dr. Matei Zaharia (creador de Apache Spark) por escribir un prólogo para mi libro; me siento honrado y humilde por sus amables palabras.

Get Algoritmos de datos con Spark 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.