SlideShare una empresa de Scribd logo
Data crunching con
David Przybilla
https://github.com/dav009
@dav009
http://opendataco.github.io/
Invitacion ;)
“Big Data”
Arquitectura Lambda
Que es Spark?
- Framework para procesar grandes cantidades de
información

- Es “como Hadoop, pero mejor”. El API es amor puro

- Accesible via Scala, Java, Python y R

- Permite procesar grandes cantidades de información
en tiempo real.

- Funciona muy bien con tecnologías como : Cassandra,
HDFS, Hive…

- No hay mucha diferencia entre resolver l mismo
problema en Spark que en Scala
Cuando debería pensar en
usar Spark?
• Exploración de Datos



- Explorar un dataset grande

- Slice (Particionar) dataset

- Hacer un cluster en AWS es rapido y barato

- Pipeline para procesar datos
• Crear Modelos / Pipeline de Procesamiento
• Sistemas de producción. i.e: 



- Calcular Modelos de Preferencia de Usuarios,

- Calcular estadísticas sobre eventos..
Cuando debería pensar en
usar Spark?
• Netflix: 1.5 Millones de eventos por Segundo
• Netflix: 80 billones de eventos al día
• Factorizar una Matriz de 700GB (datos
de twitter)
• Cruzar datos de diferentes ontologias:
• DBpedia(100GB),
• Freebase(350GB),
• Wikidata(cerca 100GB)
• Wikimedia (32T)
Quien usa Spark?
"IBM said it will put more than 3,500 of its
developers and researchers to work on
Spark-related projects. "
Hadoop
Spark
Contando largo de Lineas
Spark
RDD1
RDD2
RDD3
RDD4
Accion!
parallelize( [1, 2, 3 …… x] )
RDD(Resilient Distributed Dataset)
[1, 2, 3 …… x]Regular Array
RDD
[1, 2, 3]
[4, 5, 6]
[6, 7, 8]
[…. x]
[1, 2, 3 …… x]
Partitions
Operaciones sobre RDDs
Transformaciones RDD RDD
Input RDD : [1, 2, 3 ,4 …]
f(x) = x + 1
Output RDD : [2, 3, 4 ,5 …]
Operaciones sobre RDDs
Acciones RDD Valor
Input RDD : [1, 2, 3 ,4]
sum
Output : 10
ResilentDD
Resilient: [1, 2, 3]
[4, 5, 6] [6, 7, 8]
[…. x]
[1, 2, 3]
[4, 5, 6]
[1, 2, 3, 7]
[4, 5, 6, 8]
[…. x]
Driver
Driver
val datosArchivo = 

sc.textFile(“/Path/toFile“)
[Linea1,
Linea2,
Linea3…]
[Linea4, Linea5…]
[…. Linea x]
Driver
val palabras = datosArchivo.flatMap{
line =>
line.split(" ")
}
Linea1: Hola Mundo
Linea2: Hello World
[“Hola”, “Mundo”]
[“Hello”, “World”]
split
split
flatten
[“Hello”, “World”, “Hola”, “Mundo”]
[Hello, World,…]
[Hola,…]
[….,Mundo ]Driver
val soloPalabrasValle =
palabras.filter(_.toLowerCase()=="valle")
[Hello, World,…]
[c++…. valle ]
[Valle,…]
Driver
val numeroOcurrenciasValle = 

soloPalabrasValle.map(palabra => 1).reduce(_+_)
[valle, valle, Valle ..]
map
[1, 1, 1 ….]
[1, 1, 1…1 ]
reduce
( (1 + 1) + 1 ) + 1)
Total: 10
Driver
{
"Creaci√ón de Proceso": "24 de June de 2015 10:50 A.M.",
"Objeto del Contrato": "Prestacion de servicios profesionales como como medico general, en las condiciones, areas
servicios requeridos",
"Estado del Contrato": "Celebrado",
"Correo Electr√ónico": "contratacion@esesanantoniodepadua.gov.co",
"Fecha de Inicio de Ejecuci√ón del Contrato": "02 de mayo de 2015",
"Grupo": "[F] Servicios",
"Tipo de Contrato": "Prestaci√ón de Servicios",
"Identificaci√ón del Representante Legal": "C√édula de Ciudadanía No. 1.110.479.226 Ibagu√é",
"Departamento y Municipio de Ejecuci√ón": "Huila : La Plata",
"Cuantía Definitiva del Contrato": "$12,000,000 Peso Colombiano",
"documents": [
{
"publication_date": "24-06-2015 11:03 AM",
"url": "/cloud/cloud2/2015/DA/241396015/15-4-3967699/DA_PROCESO_15-4-3967699_241396015_15194469.pdf",
"name": "Documento Adicional",
"description": "ACTA INICIO"
},
{
"publication_date": "24-06-2015 11:02 AM",
"url": "/cloud/cloud2/2015/C/241396015/15-4-3967699/C_PROCESO_15-4-3967699_241396015_15194424.pdf",
"name": "Contrato",
"description": ""
}
],
"Identificaci√ón del Contratista": "C√édula de Ciudadanía No. 1.110.479.226 Ibagu√é",
"Nombre o Raz√ón Social del Contratista": "GERMAN EDUARDO SILVA BONILLA",
"Nombre del Representante Legal del Contratista": "GERMAN EDUARDO SILVA BONILLA",
"Segmento": "[85] Servicios de Salud",
"Plazo de Ejecuci√ón del Contrato": "2 Meses",
"Celebraci√ón de Contrato": "24 de June de 2015 11:04 A.M.",
"Estado del Proceso": "Celebrado",
"Clase": "[851016] Personas de soporte de prestaci√ón de servicios de salud",
"Cuantía a Contratar": "$12,000,000",
"RÎgimen de Contrataci×n": "ESE HOSPITAL",
"Destinaci√ón del Gasto": "No Aplica",
"Tipo de Proceso": "RÎgimen Especial",
"Detalle y Cantidad del Objeto a Contratar": "Prestacion de servicios profesionales como como medico general, en
condiciones, areas y servicios requeridos",
"Fecha de Firma del Contrato": "30 de abril de 2015",
Datos
import sqlContext._
import org.apache.spark.sql.SQLContext
val sqlContext = new SQLContext(sc)

val contratos = 

sqlContext.jsonFile("pathToFile")


contratos.registerTempTable("contratos")

contratos.printSchema()
Json? Daataframes!
val contratosNombreCuantia = 

sqlContext.sql(query)
val query =
"SELECT `Cuantía a Contratar` as cuantia, `Nombre o Razón Socia
del Contratista` as nombre, `Departamento y Municipio de Ejecuci
as place FROM contratos"
contratosNombreCuantia.take(10)
Que debería aprender?
• Programación Funcional?
• Dataframes (si! como en pandas ;) )
• Spark Streaming (Real time Spark)
• Spark-EC2 utils
• MLIB(Machine Learning)
• GraphX
Links utiles
• Ejemplos: https://spark.apache.org/examples.html
• Cassandra - Spark: https://github.com/datastax/
spark-cassandra-connector
• Exploracion: http://lightning-viz.org/
• Deep learning : https://github.com/deeplearning4j/
deeplearning4j
Links Utiles
• Pandas & Spark: http://www.slideshare.net/hkarau/sparkling-pandas-electric-bugaloo-
py-data-seattle-2015
• Sparta : Spark + Julia : https://github.com/dfdx/Sparta.jl
• Time series: https://github.com/charles-cai/spark-timeseries
• Deep learning on Spark : http://deepdist.com/
• Hive & Spark : http://www.slideshare.net/Hadoop_Summit/empower-hive-with-spark
• Exploring SparkR : http://blagrants.blogspot.co.uk/2015/06/exploring-sparkr.html
• Spark ETL Techniques : http://www.slideshare.net/DonDrake/spark-etl-techniques
• Lambda Architecture : https://www.parleys.com/tutorial/lambda-architecture-spark-
streaming-kafka-cassandra-akka-scala
• StreamDM: Data Mining for Spark Streaming. http://huawei-noah.github.io/streamDM/

Más contenido relacionado

La actualidad más candente

Agile PMO
Agile PMOAgile PMO
Gestion de Interesados - Guia del PMBOK 5ta version
Gestion de Interesados - Guia del PMBOK 5ta versionGestion de Interesados - Guia del PMBOK 5ta version
Gestion de Interesados - Guia del PMBOK 5ta version
Rocio Zelada , PMP
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
Xavier Ochoa
 
Departamento IT (Metodologías predictivas vs ágiles)
Departamento IT (Metodologías predictivas vs ágiles)Departamento IT (Metodologías predictivas vs ágiles)
Departamento IT (Metodologías predictivas vs ágiles)
Pablo F. Iglesias
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
Arturo Herrero
 
Pruebas de usabilidad
Pruebas de usabilidadPruebas de usabilidad
Pruebas de usabilidad
Luis Carlos Aceves
 
Acta de constitución de proyecto
Acta de constitución de proyectoActa de constitución de proyecto
Acta de constitución de proyecto
Universidad Continental
 
exposicion de fundamentos de pmi
exposicion de   fundamentos de pmiexposicion de   fundamentos de pmi
exposicion de fundamentos de pmi
j51r017
 
Semana 2 Mapa de historias de usuario
Semana 2   Mapa de historias de usuarioSemana 2   Mapa de historias de usuario
Semana 2 Mapa de historias de usuario
Richard Eliseo Mendoza Gafaro
 
Alineamiento de la Estrategia con la Dirección de Proyectos
Alineamiento de la Estrategia con la Dirección de ProyectosAlineamiento de la Estrategia con la Dirección de Proyectos
Alineamiento de la Estrategia con la Dirección de Proyectos
Julio Suárez de Peón Carbó
 
Obs etapas-proyectos-nuevo
Obs etapas-proyectos-nuevoObs etapas-proyectos-nuevo
Obs etapas-proyectos-nuevo
juancarlosaviles3
 
11 Herramientas y Técnicas para recopilar Requisitos
11 Herramientas y Técnicas para recopilar Requisitos11 Herramientas y Técnicas para recopilar Requisitos
11 Herramientas y Técnicas para recopilar Requisitos
Carlos Alvarez G, PMP®
 
Plantilla trabajo final estandares de calidad de TI.
Plantilla trabajo final estandares de calidad de TI.Plantilla trabajo final estandares de calidad de TI.
Plantilla trabajo final estandares de calidad de TI.
Darthuz Kilates
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
Actimel
 
Scrum
ScrumScrum
Riesgos del proyecto
Riesgos del proyectoRiesgos del proyecto
Riesgos del proyecto
Santos Gabriel
 
Desarrollo de un Sistema WEB - Iniciación
Desarrollo de un Sistema WEB - IniciaciónDesarrollo de un Sistema WEB - Iniciación
Desarrollo de un Sistema WEB - Iniciación
Dharma Consulting
 
SELECCION DE PROYECTOS
SELECCION DE PROYECTOSSELECCION DE PROYECTOS
SELECCION DE PROYECTOS
Carlos Rojas Medina
 
Pmp 13 gestión de los interesados
Pmp   13 gestión de los interesadosPmp   13 gestión de los interesados
Pmp 13 gestión de los interesados
Daniel Quiceno Calderón
 
Desarrollo de software empresa
Desarrollo de software empresaDesarrollo de software empresa
Desarrollo de software empresa
Lauritha Mejhia de Tovar
 

La actualidad más candente (20)

Agile PMO
Agile PMOAgile PMO
Agile PMO
 
Gestion de Interesados - Guia del PMBOK 5ta version
Gestion de Interesados - Guia del PMBOK 5ta versionGestion de Interesados - Guia del PMBOK 5ta version
Gestion de Interesados - Guia del PMBOK 5ta version
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Departamento IT (Metodologías predictivas vs ágiles)
Departamento IT (Metodologías predictivas vs ágiles)Departamento IT (Metodologías predictivas vs ágiles)
Departamento IT (Metodologías predictivas vs ágiles)
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
 
Pruebas de usabilidad
Pruebas de usabilidadPruebas de usabilidad
Pruebas de usabilidad
 
Acta de constitución de proyecto
Acta de constitución de proyectoActa de constitución de proyecto
Acta de constitución de proyecto
 
exposicion de fundamentos de pmi
exposicion de   fundamentos de pmiexposicion de   fundamentos de pmi
exposicion de fundamentos de pmi
 
Semana 2 Mapa de historias de usuario
Semana 2   Mapa de historias de usuarioSemana 2   Mapa de historias de usuario
Semana 2 Mapa de historias de usuario
 
Alineamiento de la Estrategia con la Dirección de Proyectos
Alineamiento de la Estrategia con la Dirección de ProyectosAlineamiento de la Estrategia con la Dirección de Proyectos
Alineamiento de la Estrategia con la Dirección de Proyectos
 
Obs etapas-proyectos-nuevo
Obs etapas-proyectos-nuevoObs etapas-proyectos-nuevo
Obs etapas-proyectos-nuevo
 
11 Herramientas y Técnicas para recopilar Requisitos
11 Herramientas y Técnicas para recopilar Requisitos11 Herramientas y Técnicas para recopilar Requisitos
11 Herramientas y Técnicas para recopilar Requisitos
 
Plantilla trabajo final estandares de calidad de TI.
Plantilla trabajo final estandares de calidad de TI.Plantilla trabajo final estandares de calidad de TI.
Plantilla trabajo final estandares de calidad de TI.
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Scrum
ScrumScrum
Scrum
 
Riesgos del proyecto
Riesgos del proyectoRiesgos del proyecto
Riesgos del proyecto
 
Desarrollo de un Sistema WEB - Iniciación
Desarrollo de un Sistema WEB - IniciaciónDesarrollo de un Sistema WEB - Iniciación
Desarrollo de un Sistema WEB - Iniciación
 
SELECCION DE PROYECTOS
SELECCION DE PROYECTOSSELECCION DE PROYECTOS
SELECCION DE PROYECTOS
 
Pmp 13 gestión de los interesados
Pmp   13 gestión de los interesadosPmp   13 gestión de los interesados
Pmp 13 gestión de los interesados
 
Desarrollo de software empresa
Desarrollo de software empresaDesarrollo de software empresa
Desarrollo de software empresa
 

Destacado

Introduccion a Apache Spark
Introduccion a Apache SparkIntroduccion a Apache Spark
Introduccion a Apache Spark
Gustavo Arjones
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
Socialmetrix
 
Spark Hands-on
Spark Hands-onSpark Hands-on
Spark Hands-on
Gaspar Muñoz Soria
 
Manual Spark
Manual SparkManual Spark
Ciberacoso
CiberacosoCiberacoso
Fundacion alia2
Fundacion alia2 Fundacion alia2
Fundacion alia2
Miguel de la Torre
 
Presentacion seguridad redes_sociales
Presentacion seguridad redes_socialesPresentacion seguridad redes_sociales
Presentacion seguridad redes_sociales
sadwou
 
Guiaparapadres[1][1]
Guiaparapadres[1][1]Guiaparapadres[1][1]
Guiaparapadres[1][1]
petronila
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
Javier de la Rosa Fernandez
 
Seguridad en redes sociales Día de inernet María Paula Espinosa
Seguridad en redes sociales Día de inernet María Paula EspinosaSeguridad en redes sociales Día de inernet María Paula Espinosa
Seguridad en redes sociales Día de inernet María Paula Espinosa
Universidad Técnica Particular de Loja
 
Internet
InternetInternet
Internet
belusanchezz
 
Seguridad en las redes sociales
Seguridad en las redes socialesSeguridad en las redes sociales
Seguridad en las redes sociales
Dones en Xarxa
 
Grooming
GroomingGrooming
Grooming
Daniela Enciso
 
Acción 1.1. Seguridad en Redes Sociales
Acción 1.1. Seguridad en Redes SocialesAcción 1.1. Seguridad en Redes Sociales
Acción 1.1. Seguridad en Redes Sociales
Alicantevor
 
Ppt redes sociales y menores
Ppt redes sociales y menoresPpt redes sociales y menores
Ppt redes sociales y menores
kiarasacobi
 
Educación y sociedad: Riesgo de las redes sociales en los menores
Educación y sociedad: Riesgo de las redes sociales en los menoresEducación y sociedad: Riesgo de las redes sociales en los menores
Educación y sociedad: Riesgo de las redes sociales en los menores
angyrgc20
 
Tecnoadicciones. Guía para profesores
Tecnoadicciones. Guía para profesoresTecnoadicciones. Guía para profesores
Tecnoadicciones. Guía para profesores
David Romero Martín
 
Tecnoadicciones. Guía para las familias
Tecnoadicciones. Guía para las familiasTecnoadicciones. Guía para las familias
Tecnoadicciones. Guía para las familias
David Romero Martín
 
Estudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveEstudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y Hive
Wellness Telecom
 
Seguridad en redes sociales
Seguridad en redes socialesSeguridad en redes sociales
Seguridad en redes sociales
Antonio Sanz Alcober
 

Destacado (20)

Introduccion a Apache Spark
Introduccion a Apache SparkIntroduccion a Apache Spark
Introduccion a Apache Spark
 
Tutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtimeTutorial en Apache Spark - Clasificando tweets en realtime
Tutorial en Apache Spark - Clasificando tweets en realtime
 
Spark Hands-on
Spark Hands-onSpark Hands-on
Spark Hands-on
 
Manual Spark
Manual SparkManual Spark
Manual Spark
 
Ciberacoso
CiberacosoCiberacoso
Ciberacoso
 
Fundacion alia2
Fundacion alia2 Fundacion alia2
Fundacion alia2
 
Presentacion seguridad redes_sociales
Presentacion seguridad redes_socialesPresentacion seguridad redes_sociales
Presentacion seguridad redes_sociales
 
Guiaparapadres[1][1]
Guiaparapadres[1][1]Guiaparapadres[1][1]
Guiaparapadres[1][1]
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
Seguridad en redes sociales Día de inernet María Paula Espinosa
Seguridad en redes sociales Día de inernet María Paula EspinosaSeguridad en redes sociales Día de inernet María Paula Espinosa
Seguridad en redes sociales Día de inernet María Paula Espinosa
 
Internet
InternetInternet
Internet
 
Seguridad en las redes sociales
Seguridad en las redes socialesSeguridad en las redes sociales
Seguridad en las redes sociales
 
Grooming
GroomingGrooming
Grooming
 
Acción 1.1. Seguridad en Redes Sociales
Acción 1.1. Seguridad en Redes SocialesAcción 1.1. Seguridad en Redes Sociales
Acción 1.1. Seguridad en Redes Sociales
 
Ppt redes sociales y menores
Ppt redes sociales y menoresPpt redes sociales y menores
Ppt redes sociales y menores
 
Educación y sociedad: Riesgo de las redes sociales en los menores
Educación y sociedad: Riesgo de las redes sociales en los menoresEducación y sociedad: Riesgo de las redes sociales en los menores
Educación y sociedad: Riesgo de las redes sociales en los menores
 
Tecnoadicciones. Guía para profesores
Tecnoadicciones. Guía para profesoresTecnoadicciones. Guía para profesores
Tecnoadicciones. Guía para profesores
 
Tecnoadicciones. Guía para las familias
Tecnoadicciones. Guía para las familiasTecnoadicciones. Guía para las familias
Tecnoadicciones. Guía para las familias
 
Estudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y HiveEstudio sobre Spark, Storm, Kafka y Hive
Estudio sobre Spark, Storm, Kafka y Hive
 
Seguridad en redes sociales
Seguridad en redes socialesSeguridad en redes sociales
Seguridad en redes sociales
 

Similar a Apache Spark - Introduccion a RDDs

Yatel dm redes
Yatel dm redesYatel dm redes
Yatel dm redes
Juan Cabral
 
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
INACAP
 
Visualización de Big Data con Power View
Visualización de Big Data con Power ViewVisualización de Big Data con Power View
Visualización de Big Data con Power View
Eduardo Castro
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Iniciativa Barcelona Open Data
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Joseph Lopez
 
Big data, Hadoop, HDInsight
Big data, Hadoop, HDInsightBig data, Hadoop, HDInsight
Big data, Hadoop, HDInsight
Gustavo Alzate Sandoval
 
BigData
BigDataBigData
Monta una Infraestructura para Big Data en tu Empresa
Monta una Infraestructura para Big Data en tu EmpresaMonta una Infraestructura para Big Data en tu Empresa
Monta una Infraestructura para Big Data en tu Empresa
Urko Zurutuza
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Joseph Lopez
 
Visualización de big data con power view
Visualización de big data con power viewVisualización de big data con power view
Visualización de big data con power view
SpanishPASSVC
 
Cloud Computing y MapReduce
Cloud Computing y MapReduceCloud Computing y MapReduce
Cloud Computing y MapReduce
Jose Emilio Labra Gayo
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
Joseph Lopez
 
Angel López Alos-Big data y cambio climático
Angel López Alos-Big data y cambio climáticoAngel López Alos-Big data y cambio climático
Angel López Alos-Big data y cambio climático
Fundación Ramón Areces
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
Software Guru
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
Salvador Ramos
 
ARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
ARQCONF2015: Creando una Arquitectura Moderna para Big Data AnalyticsARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
ARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
Gustavo Arjones
 
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScriptFull-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Diego López-de-Ipiña González-de-Artaza
 
Posadev 2018 - Distributing shirts data (ES)
Posadev 2018 - Distributing shirts data (ES)Posadev 2018 - Distributing shirts data (ES)
Posadev 2018 - Distributing shirts data (ES)
Alejandro Escobedo
 
Tecnologia Aplicaciones Web
Tecnologia Aplicaciones WebTecnologia Aplicaciones Web
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
Luis Fernando Aguas Bucheli
 

Similar a Apache Spark - Introduccion a RDDs (20)

Yatel dm redes
Yatel dm redesYatel dm redes
Yatel dm redes
 
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
Sr. Pablo García, Internet de las Cosas y Big Data: ¿hacia dónde va la Indust...
 
Visualización de Big Data con Power View
Visualización de Big Data con Power ViewVisualización de Big Data con Power View
Visualización de Big Data con Power View
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
 
Big data, Hadoop, HDInsight
Big data, Hadoop, HDInsightBig data, Hadoop, HDInsight
Big data, Hadoop, HDInsight
 
BigData
BigDataBigData
BigData
 
Monta una Infraestructura para Big Data en tu Empresa
Monta una Infraestructura para Big Data en tu EmpresaMonta una Infraestructura para Big Data en tu Empresa
Monta una Infraestructura para Big Data en tu Empresa
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
 
Visualización de big data con power view
Visualización de big data con power viewVisualización de big data con power view
Visualización de big data con power view
 
Cloud Computing y MapReduce
Cloud Computing y MapReduceCloud Computing y MapReduce
Cloud Computing y MapReduce
 
Introducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data WarehouseIntroducción a Microsoft Azure SQL Data Warehouse
Introducción a Microsoft Azure SQL Data Warehouse
 
Angel López Alos-Big data y cambio climático
Angel López Alos-Big data y cambio climáticoAngel López Alos-Big data y cambio climático
Angel López Alos-Big data y cambio climático
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
 
Dts y analysis services 2000
Dts y analysis services 2000Dts y analysis services 2000
Dts y analysis services 2000
 
ARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
ARQCONF2015: Creando una Arquitectura Moderna para Big Data AnalyticsARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
ARQCONF2015: Creando una Arquitectura Moderna para Big Data Analytics
 
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScriptFull-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
Full-stack JavaScript: Desarrollo integral de aplicaciones Web con JavaScript
 
Posadev 2018 - Distributing shirts data (ES)
Posadev 2018 - Distributing shirts data (ES)Posadev 2018 - Distributing shirts data (ES)
Posadev 2018 - Distributing shirts data (ES)
 
Tecnologia Aplicaciones Web
Tecnologia Aplicaciones WebTecnologia Aplicaciones Web
Tecnologia Aplicaciones Web
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
 

Más de David Przybilla

Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]
David Przybilla
 
Transition Based Dependency Parsing
Transition Based Dependency ParsingTransition Based Dependency Parsing
Transition Based Dependency Parsing
David Przybilla
 
Python in the land of serverless
Python in the land of serverlessPython in the land of serverless
Python in the land of serverless
David Przybilla
 
Terraforming
Terraforming Terraforming
Terraforming
David Przybilla
 
Procesamiento de Lenguaje Natural
Procesamiento de Lenguaje NaturalProcesamiento de Lenguaje Natural
Procesamiento de Lenguaje Natural
David Przybilla
 
Label propagation - Semisupervised Learning with Applications to NLP
Label propagation - Semisupervised Learning with Applications to NLPLabel propagation - Semisupervised Learning with Applications to NLP
Label propagation - Semisupervised Learning with Applications to NLP
David Przybilla
 
Automatic generation of domain models for call centers
Automatic generation of domain models for call centersAutomatic generation of domain models for call centers
Automatic generation of domain models for call centers
David Przybilla
 

Más de David Przybilla (7)

Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]Reproducible datascience [with Terraform]
Reproducible datascience [with Terraform]
 
Transition Based Dependency Parsing
Transition Based Dependency ParsingTransition Based Dependency Parsing
Transition Based Dependency Parsing
 
Python in the land of serverless
Python in the land of serverlessPython in the land of serverless
Python in the land of serverless
 
Terraforming
Terraforming Terraforming
Terraforming
 
Procesamiento de Lenguaje Natural
Procesamiento de Lenguaje NaturalProcesamiento de Lenguaje Natural
Procesamiento de Lenguaje Natural
 
Label propagation - Semisupervised Learning with Applications to NLP
Label propagation - Semisupervised Learning with Applications to NLPLabel propagation - Semisupervised Learning with Applications to NLP
Label propagation - Semisupervised Learning with Applications to NLP
 
Automatic generation of domain models for call centers
Automatic generation of domain models for call centersAutomatic generation of domain models for call centers
Automatic generation of domain models for call centers
 

Último

Plan Emergencia solicitado en obras de construccion
Plan Emergencia  solicitado en obras de construccionPlan Emergencia  solicitado en obras de construccion
Plan Emergencia solicitado en obras de construccion
christianllacchasand
 
Informe fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docxInforme fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docx
mirimerlos5
 
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIOLINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
AaronPleitez
 
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
hugowagner811
 
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptxUGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
Mayra798665
 
04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos
MarcoPolo545324
 
Plan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdfPlan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdf
agustincarranza11
 
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
darkskills2011
 
vivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodosvivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodos
DilmerCarranza
 
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllllANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
eliassalascolonia43
 
INTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdfINTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdf
YulEz1
 
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdfREPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
IrapuatoCmovamos
 
MI CECTOR POSTE BLANCO - Paián .pdf
MI  CECTOR  POSTE  BLANCO - Paián   .pdfMI  CECTOR  POSTE  BLANCO - Paián   .pdf
MI CECTOR POSTE BLANCO - Paián .pdf
GustavoTello19
 
Presentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptxPresentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptx
eleandroth
 
resumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TIresumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TI
riveroarlett5b
 

Último (15)

Plan Emergencia solicitado en obras de construccion
Plan Emergencia  solicitado en obras de construccionPlan Emergencia  solicitado en obras de construccion
Plan Emergencia solicitado en obras de construccion
 
Informe fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docxInforme fina mini bibliotecacomunitaria .docx
Informe fina mini bibliotecacomunitaria .docx
 
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIOLINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
LINEA DE TIEMPO Y PERIODO INTERTESTAMENTARIO
 
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
PROCESAMIENTO DIGITAL DE IMAGENES PDS 2020
 
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptxUGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
UGEL SAN MIGUEL SACALE TARJETA ROJA A LA VIOLENCIA.pptx
 
04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos04 capital interes simple.pdf de la clase métodos cuantitativos
04 capital interes simple.pdf de la clase métodos cuantitativos
 
Plan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdfPlan de Compensación Dxn Internacional peru pdf
Plan de Compensación Dxn Internacional peru pdf
 
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
MONOGRAFIA DEL BUSCADOR YAHOO! APSTI1"A"
 
vivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodosvivienda segura concreto, construcción y métodos
vivienda segura concreto, construcción y métodos
 
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllllANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
ANA0003227-lagunas.pdfñlñlñlñlñññlñlllll
 
INTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdfINTELIGENCIA ARTIFICIAL monografia02.pdf
INTELIGENCIA ARTIFICIAL monografia02.pdf
 
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdfREPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
REPORTE-HEMEROGRÁFICO-MAYO 2024-IRAPUATO.pdf
 
MI CECTOR POSTE BLANCO - Paián .pdf
MI  CECTOR  POSTE  BLANCO - Paián   .pdfMI  CECTOR  POSTE  BLANCO - Paián   .pdf
MI CECTOR POSTE BLANCO - Paián .pdf
 
Presentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptxPresentación simple corporativa degradado en violeta blanco.pptx
Presentación simple corporativa degradado en violeta blanco.pptx
 
resumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TIresumen de manual de organizacion y funciones de TI
resumen de manual de organizacion y funciones de TI
 

Apache Spark - Introduccion a RDDs

  • 1. Data crunching con David Przybilla https://github.com/dav009 @dav009
  • 5. Que es Spark? - Framework para procesar grandes cantidades de información
 - Es “como Hadoop, pero mejor”. El API es amor puro
 - Accesible via Scala, Java, Python y R
 - Permite procesar grandes cantidades de información en tiempo real.
 - Funciona muy bien con tecnologías como : Cassandra, HDFS, Hive…
 - No hay mucha diferencia entre resolver l mismo problema en Spark que en Scala
  • 6. Cuando debería pensar en usar Spark? • Exploración de Datos
 
 - Explorar un dataset grande
 - Slice (Particionar) dataset
 - Hacer un cluster en AWS es rapido y barato
 - Pipeline para procesar datos
  • 7. • Crear Modelos / Pipeline de Procesamiento • Sistemas de producción. i.e: 
 
 - Calcular Modelos de Preferencia de Usuarios,
 - Calcular estadísticas sobre eventos.. Cuando debería pensar en usar Spark?
  • 8. • Netflix: 1.5 Millones de eventos por Segundo • Netflix: 80 billones de eventos al día • Factorizar una Matriz de 700GB (datos de twitter) • Cruzar datos de diferentes ontologias: • DBpedia(100GB), • Freebase(350GB), • Wikidata(cerca 100GB) • Wikimedia (32T)
  • 9. Quien usa Spark? "IBM said it will put more than 3,500 of its developers and researchers to work on Spark-related projects. "
  • 12. parallelize( [1, 2, 3 …… x] ) RDD(Resilient Distributed Dataset) [1, 2, 3 …… x]Regular Array RDD [1, 2, 3] [4, 5, 6] [6, 7, 8] […. x] [1, 2, 3 …… x] Partitions
  • 13. Operaciones sobre RDDs Transformaciones RDD RDD Input RDD : [1, 2, 3 ,4 …] f(x) = x + 1 Output RDD : [2, 3, 4 ,5 …]
  • 14. Operaciones sobre RDDs Acciones RDD Valor Input RDD : [1, 2, 3 ,4] sum Output : 10
  • 15. ResilentDD Resilient: [1, 2, 3] [4, 5, 6] [6, 7, 8] […. x] [1, 2, 3] [4, 5, 6] [1, 2, 3, 7] [4, 5, 6, 8] […. x] Driver Driver
  • 16. val datosArchivo = 
 sc.textFile(“/Path/toFile“) [Linea1, Linea2, Linea3…] [Linea4, Linea5…] […. Linea x] Driver
  • 17. val palabras = datosArchivo.flatMap{ line => line.split(" ") } Linea1: Hola Mundo Linea2: Hello World [“Hola”, “Mundo”] [“Hello”, “World”] split split flatten [“Hello”, “World”, “Hola”, “Mundo”] [Hello, World,…] [Hola,…] [….,Mundo ]Driver
  • 18. val soloPalabrasValle = palabras.filter(_.toLowerCase()=="valle") [Hello, World,…] [c++…. valle ] [Valle,…] Driver
  • 19. val numeroOcurrenciasValle = 
 soloPalabrasValle.map(palabra => 1).reduce(_+_) [valle, valle, Valle ..] map [1, 1, 1 ….] [1, 1, 1…1 ] reduce ( (1 + 1) + 1 ) + 1) Total: 10 Driver
  • 20. { "Creaci√ón de Proceso": "24 de June de 2015 10:50 A.M.", "Objeto del Contrato": "Prestacion de servicios profesionales como como medico general, en las condiciones, areas servicios requeridos", "Estado del Contrato": "Celebrado", "Correo Electr√ónico": "contratacion@esesanantoniodepadua.gov.co", "Fecha de Inicio de Ejecuci√ón del Contrato": "02 de mayo de 2015", "Grupo": "[F] Servicios", "Tipo de Contrato": "Prestaci√ón de Servicios", "Identificaci√ón del Representante Legal": "C√édula de Ciudadanía No. 1.110.479.226 Ibagu√é", "Departamento y Municipio de Ejecuci√ón": "Huila : La Plata", "Cuantía Definitiva del Contrato": "$12,000,000 Peso Colombiano", "documents": [ { "publication_date": "24-06-2015 11:03 AM", "url": "/cloud/cloud2/2015/DA/241396015/15-4-3967699/DA_PROCESO_15-4-3967699_241396015_15194469.pdf", "name": "Documento Adicional", "description": "ACTA INICIO" }, { "publication_date": "24-06-2015 11:02 AM", "url": "/cloud/cloud2/2015/C/241396015/15-4-3967699/C_PROCESO_15-4-3967699_241396015_15194424.pdf", "name": "Contrato", "description": "" } ], "Identificaci√ón del Contratista": "C√édula de Ciudadanía No. 1.110.479.226 Ibagu√é", "Nombre o Raz√ón Social del Contratista": "GERMAN EDUARDO SILVA BONILLA", "Nombre del Representante Legal del Contratista": "GERMAN EDUARDO SILVA BONILLA", "Segmento": "[85] Servicios de Salud", "Plazo de Ejecuci√ón del Contrato": "2 Meses", "Celebraci√ón de Contrato": "24 de June de 2015 11:04 A.M.", "Estado del Proceso": "Celebrado", "Clase": "[851016] Personas de soporte de prestaci√ón de servicios de salud", "Cuantía a Contratar": "$12,000,000", "R√égimen de Contrataci√ón": "ESE HOSPITAL", "Destinaci√ón del Gasto": "No Aplica", "Tipo de Proceso": "R√égimen Especial", "Detalle y Cantidad del Objeto a Contratar": "Prestacion de servicios profesionales como como medico general, en condiciones, areas y servicios requeridos", "Fecha de Firma del Contrato": "30 de abril de 2015", Datos
  • 21. import sqlContext._ import org.apache.spark.sql.SQLContext val sqlContext = new SQLContext(sc)
 val contratos = 
 sqlContext.jsonFile("pathToFile") 
 contratos.registerTempTable("contratos")
 contratos.printSchema() Json? Daataframes!
  • 22. val contratosNombreCuantia = 
 sqlContext.sql(query) val query = "SELECT `Cuantía a Contratar` as cuantia, `Nombre o Razón Socia del Contratista` as nombre, `Departamento y Municipio de Ejecuci as place FROM contratos" contratosNombreCuantia.take(10)
  • 23. Que debería aprender? • Programación Funcional? • Dataframes (si! como en pandas ;) ) • Spark Streaming (Real time Spark) • Spark-EC2 utils • MLIB(Machine Learning) • GraphX
  • 24. Links utiles • Ejemplos: https://spark.apache.org/examples.html • Cassandra - Spark: https://github.com/datastax/ spark-cassandra-connector • Exploracion: http://lightning-viz.org/ • Deep learning : https://github.com/deeplearning4j/ deeplearning4j
  • 25. Links Utiles • Pandas & Spark: http://www.slideshare.net/hkarau/sparkling-pandas-electric-bugaloo- py-data-seattle-2015 • Sparta : Spark + Julia : https://github.com/dfdx/Sparta.jl • Time series: https://github.com/charles-cai/spark-timeseries • Deep learning on Spark : http://deepdist.com/ • Hive & Spark : http://www.slideshare.net/Hadoop_Summit/empower-hive-with-spark • Exploring SparkR : http://blagrants.blogspot.co.uk/2015/06/exploring-sparkr.html • Spark ETL Techniques : http://www.slideshare.net/DonDrake/spark-etl-techniques • Lambda Architecture : https://www.parleys.com/tutorial/lambda-architecture-spark- streaming-kafka-cassandra-akka-scala • StreamDM: Data Mining for Spark Streaming. http://huawei-noah.github.io/streamDM/