SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Cloud Foundry Architecture and Overview
Cloud Foundry Architecture and OverviewCloud Foundry Architecture and Overview
Cloud Foundry Architecture and Overview
rajdeep
 
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
aiuy
 
Elementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a serviciosElementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a servicios
wachu wachu pi
 

Was ist angesagt? (20)

Introduction to Map-Reduce
Introduction to Map-ReduceIntroduction to Map-Reduce
Introduction to Map-Reduce
 
Moving from SQL Server to MongoDB
Moving from SQL Server to MongoDBMoving from SQL Server to MongoDB
Moving from SQL Server to MongoDB
 
Cloud Foundry Architecture and Overview
Cloud Foundry Architecture and OverviewCloud Foundry Architecture and Overview
Cloud Foundry Architecture and Overview
 
Google Cloud and Data Pipeline Patterns
Google Cloud and Data Pipeline PatternsGoogle Cloud and Data Pipeline Patterns
Google Cloud and Data Pipeline Patterns
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Big Data and Hadoop Guide
Big Data and Hadoop GuideBig Data and Hadoop Guide
Big Data and Hadoop Guide
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
 
The Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop EcosystemThe Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop Ecosystem
 
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
DataFusion-and-Arrow_Supercharge-Your-Data-Analytical-Tool-with-a-Rusty-Query...
 
LLAP: long-lived execution in Hive
LLAP: long-lived execution in HiveLLAP: long-lived execution in Hive
LLAP: long-lived execution in Hive
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
 
Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
 
Spark Summit East 2015 Advanced Devops Student Slides
Spark Summit East 2015 Advanced Devops Student SlidesSpark Summit East 2015 Advanced Devops Student Slides
Spark Summit East 2015 Advanced Devops Student Slides
 
Elementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a serviciosElementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a servicios
 
04 spark-pair rdd-rdd-persistence
04 spark-pair rdd-rdd-persistence04 spark-pair rdd-rdd-persistence
04 spark-pair rdd-rdd-persistence
 
XSLT.ppt
XSLT.pptXSLT.ppt
XSLT.ppt
 
Introducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceIntroducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data Science
 
Software Product Engineering Services | Digital Transformation
Software Product Engineering  Services | Digital TransformationSoftware Product Engineering  Services | Digital Transformation
Software Product Engineering Services | Digital Transformation
 
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLabApache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
Apache Spark - Basics of RDD | Big Data Hadoop Spark Tutorial | CloudxLab
 

Andere mochten auch

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
 

Andere mochten auch (20)

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
 
Seguridad en Redes Sociales
Seguridad en Redes SocialesSeguridad en Redes Sociales
Seguridad en Redes Sociales
 

Ähnlich wie Apache Spark - Introduccion a RDDs

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
ssuserbdc329
 
PLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorarPLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorar
CelesteRolon2
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
BESTTech1
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
MedicinaInternaresid1
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
JC Díaz Herrera
 

Kürzlich hochgeladen (20)

Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
 
Trabajo Final de Powerbi DMC Indicadores.pptx
Trabajo Final de Powerbi DMC Indicadores.pptxTrabajo Final de Powerbi DMC Indicadores.pptx
Trabajo Final de Powerbi DMC Indicadores.pptx
 
PLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorarPLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorar
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
 
Los primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdfLos primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdf
 
llllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 
Tipos de Educacion en diferentes partes del mundo.pptx
Tipos de Educacion en diferentes partes del mundo.pptxTipos de Educacion en diferentes partes del mundo.pptx
Tipos de Educacion en diferentes partes del mundo.pptx
 
COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
Principales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto RicoPrincipales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto Rico
 
EPIDEMIO CANCER PULMON resumen nnn.pptx
EPIDEMIO CANCER PULMON  resumen nnn.pptxEPIDEMIO CANCER PULMON  resumen nnn.pptx
EPIDEMIO CANCER PULMON resumen nnn.pptx
 
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILASistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
 
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de CyclisticAnálisis de datos en acción: Optimizando el crecimiento de Cyclistic
Análisis de datos en acción: Optimizando el crecimiento de Cyclistic
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
 
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfCALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
 
Posiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfPosiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdf
 
Evolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfEvolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdf
 
Las familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdfLas familias más ricas del sionismo en el siglo XXI.pdf
Las familias más ricas del sionismo en el siglo XXI.pdf
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
 
procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...
 

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/