Programación con Apache Spark
4.5 (10 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
79 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Programación con Apache Spark to your Wishlist.

Add to Wishlist

Programación con Apache Spark

La mejor herramienta para el procesamiento del Big Data
New
4.5 (10 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
79 students enrolled
Last updated 7/2017
Spanish
Current price: $10 Original price: $100 Discount: 90% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 6.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
What Will I Learn?
  • Los estudiantes serán capaces de desarrollar códigos en Apache Spark, usando RDDs y Dataframes. Tambiń introduciremos algunos aspectos de alto nivel, como la librería de machine learning Spark MLib, Spark streaming para el procesamiento de flujos de información y Spark GraphX para el procesamiento paralelo de grafos.
View Curriculum
Requirements
  • Se necesita conocimientos de programación Python. También ayudaría tener conocimientos básicos de Scala, pero no resulta imprescindible.
Description

A través de este curso los alumnos aprenderán a programar con Apache Spark, la solución más eficiente y popular para procesar enormes cantidades de datos en clusters de cientos de máquinas.

Spark es hasta 100 veces más rápido que Apache Hadoop si el procesamiento se hace en memoria y 10 veces más rápido si se hace en disco. Para conseguir este rendimiento, Spark incorpora un motor de ejecución avanzado basado en Grafos Dirigidos Acíclicos (DAGs) de tareas que permite el flujo de datos acíclico u la computación en memoria.

Spark es fácil de usar, y permite  utilizar diferentes lenguajes de programación, en concreto Python, Scala, Java o R.  Ofrece más de 80 operadores de alto nivel que facilitan la creación de programas paralelos escalables a cientos o miles de máquinas. Y es posible utilizarlo de forma interactiva mediante los interpretes de Python, Scala o R, o utilizando herramientas como Apache Zeppelin, como veremos en este curso.

Spark se puede ejecutar en un PC simple, en un cluster con Hadoop YARN o Apache Mesos, o en la nube, con soluciones como Amazon Elastic MapReduce o Microsoft HDInsight. Y puede acceder a datos almacenados el HDFS, Cassandra, HBase, Hive, Tachyon y cualquier fuente de datos accesible por Hadoop.

Empezaremos viendo los elementos básicos de la programación Spark: los RDDs  o Resilient Distributed DataSets. Veremos como crearlos, transformarlos y operar con ellos para procesar nuestros archivos.Continuaremos viendo aspectos avanzados para mejorar y optimizar nuestros códigos Spark y finalizaremos adentrándonos en el conjunto de soluciones de alto nivel de Spark: Spark SQL, Spark Streaming, Spark ML para problemas de Machine Learning, y GraphX para procesamiento de grafos. Todas estas soluciones pueden combinarse en la misma aplicación para alcanzar nuestros objetivos.

Who is the target audience?
  • Programadores que quieran utilizar la herramienta más popular en la actualidad para el procesamiento del Big Data.
Compare to Other Courses
Curriculum For This Course
25 Lectures
06:27:43
+
Presentación del curso
3 Lectures 34:13

En este primer vídeo, veremos como instalar el software necesario para seguir el curso en un sistema con Microsoft Windows. Instalaremos el gestor de máquinas virtuales VirtualBox y la herramienta para la creación y configuración de entornos de desarrollo virtualizados.Vagrant. Con estas herramientas, descargaremos una máquina virtual que ya dispone de Apache Spark y los notebooks de Apache Zeppelin con el contenido del curso.

Preparación del entorno en Microsoft Windows
18:02

Veremos como instalar el software necesario para seguir el curso en un sistema con Ubuntu Linux. Instalaremos el gestor de máquinas virtuales VirtualBox y la herramienta para la  creación y configuración de entornos de desarrollo virtualizados.Vagrant. Con estas herramientas, descargaremos una máquina virtual que ya dispone de Apache Spark y los notebooks de Apache Zeppelin con el contenido del curso.

Preparación del entorno en Ubuntu Linux
14:06
+
Introducción a Spark y a los RDDs
3 Lectures 40:36

En esta clase haremos una introducción a Apache Spark, destacando:

  • Sus diferencias con el modelo MapReduce y Apache Hadoop
  • Sus principales ventajas
  • Sus componentes principales
  • Su modo de funcionamiento

Seguiremos trabajando sobre estos puntos a lo largo del curso.

Preview 11:56

En esta clase veremos como crear y visualizar la estructura de datos básica para trabajar con Apache Spark, los denominados RDDs (Resilient Distributed Datasets).

Introducción a los RDDs
15:17

En esta clase haremos una introducción a las operaciones básicas que se pueden hacer sobre los RDDs, y que son de dos tipos: transformaciones y acciones. Las transformaciones convierten un RDD en otro RDD realizando una operación sobre el primero. Las acciones, por su parte, extraen valores (simples o compuestos) a partir de un RDD,

Introducción a las transformaciones y acciones
13:23
+
Operaciones sobre RDDs simples
4 Lectures 44:56

En este vídeo vamos a ver las transformaciones que se pueden hacer sobre RDDs simples y que afectan a cada uno de los elementos del mismo.

Transformaciones sobre RDDs simples
18:16

En esa clase veremos un conjunto pequeño de transformaciones que utilizan dos RDDs y que hacen operaciones de tipo conjunto, como, por ejemplo, uniones, intersecciones y otras, generando un tercer RDDs con datos de los dos de partida.

Transformaciones sobre dos RDDs simples
05:08

El primer tipo de acciones que vamos a comentar son las de agregación, que, como su nombre indica, agregan los elementos del RDD para obtener un valor final. Las principales acciones de este tipo son reduce, fold y aggregate.

Acciones de agregación sobre RDDs simples
15:14

En esta clase veremos otras acciones para extraer información de RDDs simples. En concreto veremos dos tipos:

  • Acciones que permiten determinar el número de los elementos de un RDD (count, countApprox y countApproxDistinct).
  • Acciones que permiten recuperar los datos de un RDD (collecttaketakeSample, toptakeOrdered)


Otras acciones sobre RDDs simples
06:18

Contar el número de veces que aparece cada palabra en el texto del Quijote.
Programa WordCount
3 questions
+
Otros tipos de RDDs
5 Lectures 33:48

En esta clase introduciremos un tipo de RDD muy importante en la programación en Apache Spark, los denominados RDDs clave/valor o Pair RDDs. Veremos en este vídeo como crear este tipo de RDDs a partir de listas de tuplas o de RDDs simples.

RDDs con pares clave-valor
10:33

En este vídeo veremos un conjunto de transformaciones que se pueden aplicar sobre un RDD de tipo clave/valor.

Transformaciones sobre un RDD clave/valor
10:38

Completando el vídeo anterior, veremos ahora un conjunto de transformaciones que actúan sobre dos RDDs de tipo clave/valor para generar un nuevo RDD del mismo tipo.

Transformaciones sobre dos RDDs clave/valor
05:10

Veremos ahora una serie de acciones aplicables a RDD de tipo clave/valor.

Principales acciones sobre RDDs clave/valor
02:29

A partir de un fichero con información sobre patentes, obtener el número de citas que ha recibido cada una de ellas.
Número de citas de patentes
5 questions

Obtener, para cada país de invención, el número medio de reivindicaciones ("claims") de sus patentes.
Número medio de reivindicaciones por país
3 questions

En esta clase veremos algunos métodos de estadística descriptiva que implementa Spark para usar con RDDs numéricos.

RDDs numéricos
04:58

Obtener el número de patentes asociadas a un país para cada año y su media aritmética.
Número de patentes por país y año
2 questions
+
Aspectos avanzados de Apache Spark
5 Lectures 01:12:27

En esta clase estudiaremos aspectos relacionados con la persistencia y el particionado de los RDDs. 

Spark permite que los RDDs se almacenen en memoria y/o disco para evitar tener que recalcularlos cada vez que se necesiten: este mecanismo se denomina persistencia.

Por otro lado, Spark permite indicar el número de particiones en que queremos repartir un RDD no sólo en el momento de crearlo, sino también al realizar una transformación sobre el mismo. Adicionalmente, Spark incluye funciones que permiten el reparticionado de los RDD ya creados.


Persistencia y particionado
18:46

Lectura y escritura de ficheros
17:08

A partir del fichero apat63_99.txt, crear ficheros secuencia en los que la clave sea el país y el valor un string formado por el número de patente y el año de concesión separados por una coma.
Crear ficheros secuencia
1 question

Escribir un programa Scala Spark que, a partir de los ficheros cite75_99.txt y apat63_99-seq, obtenga, para cada patente, el país, el año y el número de citas.
País, año y número de citas de cada patente
1 question

En esta clase estudiaremos en comando spark-submit, que permite lanzar trabajos Spark desde línea de comandos. Veremos diferentes parámetros que pueden ajustarse en el momento de iniciar el trabajo.

Ejecución de scripts desde línea de comandos
13:41

En esta clase veremos como el interfaz web nos permite acceder a información detallada sobre la ejecución de los trabajos Spark.

Aspectos avanzados: interfaz Web
11:45

Dedicaremos esta clase a ver otros aspectos avanzados de Apache Spark, como son los acumuladores, las variables de broadcast y los métodos para trabajar a nivel de partición.

Otros aspectos avanzados de Apache Spark
11:07

Obtener para cada país una lista con los años y el número de patentes de cada año.
Número de patentes por año de un país
1 question
+
Otros componentes de Apache Spark
5 Lectures 01:05:52

En esta clase veremos como crear DataFrames. Los Dataframes son el tipo de datos básico de Spark SQL.

Spark SQL (I): creación de DataFrames
20:00

En esta clase veremos un conjunto de operaciones para procesar DataFrames.

Spark SQL (II): operaciones con DataFrames
15:02

Queremos obtener de nuevo el número de citas que ha obtenido cada patente, pero usando DataFrames en vez de RDDs
Número de citas de patentes usando DataFrames
3 questions

En esta clase introduciremos la tecnología Spark Streaming, para procesamiento escalabre y de alto rendimiento de flujos de datos en tiempo real.

Spark Streaming
12:49

Spark MLlib es una librería de algoritmos de aprendizaje automático (machine learning) desarrollados sobre Apache Spark.

Spark MLlib
07:09

En esta última clase haremos una introducción a GraphX, el módulo de Apache Spark para procesamiento de grafos.

Spark GraphX
10:52
About the Instructor
Tomás Fernández Pena
4.5 Average rating
10 Reviews
79 Students
1 Course
Doctor en Arquitectura de Computadores

Me licencié en Física en la Universidad de Santiago de Compostela (USC) en el año 1989 y en ella obtuve el título de doctor en Física en el año 1994. Desde 1990 hasta 1994 fui profesor en la Facultad de Informática de la Universidad de A Coruña. Desde 1994 soy profesor titular de universidad en el Departamento de Electrónica y Computación de la Universidad de Santiago de Compostela. Soy miembro del CiTIUS (Centro de Investigación en Tecnologías de la Información) de la USC desde 2010.

Mis principales líneas de interés incluyen la computación de altas prestaciones, la arquitectura de sistemas paralelos, el desarrollo de algoritmos paralelos para clusters y supercomputadores, la optimización de rendimiento en problemas irregulares y con matrices dispersas, la predicción y mejora del rendimiento de aplicaciones paralelas en general, el desarrollo de aplicaciones y middleware para sistemas grid y cloud y las tecnologías Big Data aplicadas al procesamiento del lenguage natural, la bioinformática, la chemioinformática y aplicaciones científicas en general. Actualmente soy Senior Member del IEEE y editor asociado de la revista IEEE Transactions on Computers.