DataScience con PySpark I: Apache Spark, Python, DataFrames y RDDs
ฝัง
- เผยแพร่เมื่อ 8 ก.พ. 2025
- Empezamos con Apache Spark, herramienta líder para analítica de datos con BigData, Ingeniería de datos, etc. Todo el código y explicación en mi blog albert coronado punto com.
Tenéis disponible el código en el blog www.albertcoronado.com/2021/03/18/datascience-con-pyspark-i-apache-spark-python-dataframes-y-rdds/ ! Si os a gustado y tenéis ganas de echar un cable compartid en Twitter, Linkedin, Grupos de Discord, Whatsapp con vuestros compañeros de Estudios, trabajo y a todo aquel al que le pueda interesar!
La mejor manera de apoyar estos canales es dando manita arriba, comentando, compartiendo y viendo los comerciales. Gracias
A los 6min ya estoy fascinado con tus explicaciones. Se agradece muchisimo!
Yo he aprobado la 2ª Evaluación de Sistemas del grado superior de DAW gracias al video de comandos y scripts en la bash (consistía todo el examen en hacer scripts de la bash), 50 minutos, una evaluación. La 3ª Evaluación, también de sistemas, gracias a los cursos de docker y apache spark. He recomendado tu canal a todos mis compañeros e incluso a mi profesor. Enhorabuena por tus vídeos y muchas gracias!
woow, que explicacion tan clara.
gracias!!!
Muy buena introducción a la herramienta de Apache Spark. EL tutorial es fácil de seguir, tiene ejemplos con los que romper mano muy interesantes y sencillos. No es el primer tutorial de Albert que sigo y todos me han resultado muy útiles y amigables. Enhorabuena por tu trabajo Albert! Ojalá sigas haciendo más tutoriales.
Muy interesante el vídeo, la verdad que es este mundo antes de ponerte a ello se ve como una montaña y luego de ir viendo vídeos como este se ve más accesible
Thanks a lot. I’m able to grasp it well. No one showed me how to do it on big data like you did. 🙏 🎉
Muchas gracias por compartir uno de los mejores de la red. Te auguro mucho éxito
Genial, Albert. Muy bien explicado y planteado. Con tutoriales, ebooks y documentación oficial es un poco lioso, pero lo has dejado muy claro y fácil. Muchas gracias por estos vídeos.
EXCELENTE Albert. Simplemente espectacular. ¿No estás compartiendo mas videos?
Muchas gracias por tus videos. Van al grano y bien explicados!! ♥
Wow, que gran contenido! Súper bien explicar 👏🏻👏🏻👏🏻👏🏻👏🏻
Genial, yo he estado trabajando 2 años con Spark, tanto haciendo cositas con MLlib, como creando Streams para procesar eventos desde colas Kafka pero con Apache Beam en Java ejecutando en un cluster de Spark en Azure y es superpotente, ahora, tunear bien los Jobs (asignar recursos) para ejecutarlos en un cluster de streaming sin problemas da bastantes dolores de cabeza , quizá por eso Databricks está pegando fuerte. Sigue por favor con la serie y muchas gracias
gracias me ayudo mucho estoy empezando en esto
Muy ejemplificado, muy bien, gracias!
Albert excelente contenido, muchas gracias. en el próximo video ¿nos explicaras las funciones para trabajar con RDD?
Excelente Albert, gracias
Excelente trabajo
Buenas Albert, Scala no solo es interpretado, también puede ser compilado tanto con Maven como con SBT. SI bien con spark-shell, logras que sea "interpretado" tienes las otras posibilidades. Añadir, que el mismo Spark esta desarrollado en Scala.
Si es opción, pero es un paso más a además se generan muchas piezas, la primera vez que me acerque a spark lo hice así, y es mas trabajo, el formato de interprete es más rápido y versionas menos piezas y hay menos uso de disco al no generar binarios
Gran video tio
he aprendido mucho, gracias
Gracias, muy didactico
Antes había visto el video donde trabajas con Hadoop, pero solo vi el 30%, porque trabajabais con Linux, (que no lo sé) y otras cosas que no entendía nada. Hoy ya he madurado más cosas de big data y he comprendido todo lo que has compartido y lo encontré clarísimo, muy didáctico y accesible, mis felicitaciones. Lo he visto anoche y de nuevo lo revisado hoy en la mañana, porque quedé enganchado. Pero hay algo que todavía no se, Linux. Por lo tanto mi pregunta es la siguiente: ¿puedo hacer esto mismo en Window?. Estaré eternamente agradecido por vuestra respuesta y que Dios te multiplique siempre.
Muy interesante, te propongo una serie de videos apache druid, no hay nada en español para youtube.
Excelente video!!!
Excelente vídeo muchas gracias, creo que se podría configurar pyspark para que inicie un notebook de júpiter , lo que ayudaría un poco a la visualización de los ejemplos explicados,
Excelente
Mil gracias Eliezer!
Muy bien... gracias
Mil gracias Alonso!
Increíble...!
Buenísimo
Muchas gracias por el video muy bien explicado, solo me quedo la duda de si al convertir el dataframe ya no se procesa en paralelo en los demas nodos, muchas gracias!
Hola albert, gracias por compartir se te entiende muy bien, pero me gustaría empezar de cero, tienes alguna lista de reproducción? porque veo que en este video aterrizas conceptos que tal vez ya existieron en algún otro video. de antemano muchas gracias.
Hola! Me encantan tus vídeos. Tengo una consulta, los Dataframes realmente solo trabajan en una maquina? Porque según leo la documentación tanto RDD's y Dataframes creo entender que pueden funcionar de manera distribuida. Muchas gracias!
No, eso no es cierto. Tanto los RDDs (Resilient Distributed Datasets) como los DataFrames en PySpark están diseñados para funcionar en un entorno distribuido y pueden correr en múltiples máquinas (nodos) dentro de un clúster de Spark. Vamos a detallar las diferencias clave entre ambos para aclarar este malentendido:
1. RDDs (Resilient Distributed Datasets):
Qué son: RDDs son la abstracción fundamental de Spark para la manipulación de datos distribuidos de manera inmutable y tolerante a fallos.
Distribución: Los RDDs se distribuyen automáticamente a través de los nodos de un clúster. Los cálculos sobre RDDs se ejecutan en paralelo en todas las máquinas disponibles.
API: La API de RDDs es más cercana a la programación funcional, con operaciones como map, filter, y reduce.
Eficiencia: Los RDDs no tienen optimizaciones internas avanzadas como el planificador Catalyst de los DataFrames, por lo que pueden ser menos eficientes para algunas operaciones complejas.
2. DataFrames:
Qué son: DataFrames son una abstracción de alto nivel basada en RDDs pero optimizada para trabajar con datos estructurados (similar a tablas de bases de datos).
Distribución: Al igual que los RDDs, los DataFrames están distribuidos a través de un clúster de Spark. Esto significa que las operaciones sobre DataFrames se ejecutan en paralelo en múltiples máquinas.
Optimización: Los DataFrames utilizan el optimizador Catalyst y el motor de ejecución Tungsten, lo que permite realizar optimizaciones automáticas como la selección de los métodos de ejecución más eficientes y la generación de planes de ejecución optimizados.
API: Ofrecen una API similar a SQL, lo cual facilita la manipulación de datos estructurados y complejos.
Diferencias Clave:
Optimización: La mayor diferencia radica en la eficiencia y optimización. DataFrames aprovechan el optimizador Catalyst, que puede reordenar y optimizar las consultas de manera más avanzada que los RDDs.
Uso de Recursos: DataFrames están diseñados para ser más eficientes en cuanto al uso de memoria y CPU debido a optimizaciones como la generación de código a bajo nivel y la reducción de objetos de JVM.
Simplicidad y Usabilidad: DataFrames permiten trabajar con datos de manera más sencilla y con menos líneas de código gracias a su API orientada a SQL y su manejo automático de tipos de datos.
Conclusión:
Ambos, RDDs y DataFrames, están diseñados para trabajar en entornos distribuidos y pueden correr en múltiples máquinas. La idea de que los DataFrames solo corren en una máquina es incorrecta; tanto RDDs como DataFrames están optimizados para aprovechar el paralelismo y la distribución en un clúster de Spark.
Excelente tutorial, una pregunta: ¿cual es el video para descargar Apache Spark?
Muy interesante apache spark muchas gracias Albert. Maestro una pregunta si se aumenta un worker más el proceso sería más rápido o es indiferente ya que el dataframe no es paralelizable?
Con DataFrames es indiferente. Con RDDs si que sería mas rápido
Me gustaría q te mandaras con un vídeo para crear y usar udf's sería un éxito
Excelente video, falto la parte de rdd en pyspark , conexion a base de datos y levantar un rdd o data frame a partir de una tabla, y por otro lado un despliegue de un programa pyspark ejecutando con spark-submit. No es lo mismo ejecutar codigo directo en pyspark y luego ejecutarlo por spark-submit., que nos puedes contar al respecto Nullsafe Architect
hola, ¿hay alguna forma de "unir" todos esos ficheros csv que genera "products.write.mode(“overwrite”).csv..." en un único fichero CVS? Gracias
Muy bueno Albert! Por curioso: cuánta RAM tiene la notebook donde mostraste el uso de esta herramienta?
12gb
Espero puedas responder, tengo Oracle 19c y NO puede realizar la conexion, buscando lei por ahi que NO es compatible aun Spark y Oracle 19c. Me gustaria conocer si sabes algo acerca la compatibilidad y si es posible realizar esta conexion?
Hola! Que curso me recomendarías para arrancar desde cero con Spark?
Empieza siguiendo esta serie de vídeo
Hola Me puedes indicar cual es la cam con la cual grabas los videos?, gracias.
Hola Alberto no entiendo la diferencia entre Apache Spark y Pandas? Sdos
Como conviertes el mes a número en las fechas ?
Cuando lee los archivos con *.csv... ¿los concatena?
Hola muy buenos tus videos, estoy arrancando a usar pyspark y me resulto muy fácil gracias a tus videos. Quería consultarte como poder ejecutar todos estos comando desde un archivo .py. Si es que se puede
que hace pyspark que no podemos hacer con pandas ?
estimado su tutorial debe actualizarlo desde la linea de comandos todo desactualizado
Soy nueva en pypark y cuando intento cargar todos los .parquet que tengo dentro de una ruta me arroja este error py4j.protocol.Py4JJavaError: An error occurred while calling o44.parquet.
alguien sabe como lo puedo solucioanr?
A alguien le ha ocurrido un error que indica JAVA_HOME is not set? he buscado en varios sitios y no encuentro solución. De antemano gracias por la ayuda!
Hola buen dia, el sitio esta caido, podria subir subir el codigo a github por favor?
Resuelto! A ver si con lo que le acabo de hacer no falla mas.
Hola excelente video me puedes ayudar si coloco
df = spark.read.options(header='True', inferSchema='True').csv("/dataset/*.csv")
se queda
y si coloco
df = spark.read.options(header='True', inferSchema='True').csv("/dataset/2019-Oct.csv")
uno por uno lo carga como hago para que se sumen todos en el df porque asi me guarda el ultimo nada mas
Hola lo hice en Linux y no tuve ningún problema en windows solo me los leía uno por uno
8:59
Tu página esta caida, amigo
Resuelto! A ver si con lo que le acabo de hacer no falla mas.
Excelente Albert, gracias