SlideShare una empresa de Scribd logo
Ciencia de Datos con Apache Spark y OptimusCiencia de Datos con Apache Spark y Optimus
Favio Vázquez
Data Scientist
@faviovaz
https://github.com/faviovazquez
https://www.linkedin.com/in/faviovazquez/
March 15th, 2018
Esquema
1. Introducción a Apache Spark y1. Introducción a Apache Spark y
OptimusOptimus
Fundamentos de Spark
Fundamentos de Optimus
2. Data Science con Spark y2. Data Science con Spark y
OptimusOptimus
Limpieza, Exploración y Preparación de
Datos con Spark y Optimus
Introducción a Machine Learning con Spark
y Optimus.
http://spark.apache.org/
HistoriaHistoria
2004 – Google
MapReduce: Simplified Data Processing on Large Clusters
Jeffrey Dean and Sanjay Ghemawat
 
2006 – Apache
Hadoop, originating from the Nutch Project
Doug Cutting
 
2008 – Yahoo
web scale search indexing
Hadoop Summit, HUG, etc.
 
2009 – Amazon AWS
Elastic MapReduce
Hadoop modified for EC2/S3, plus support for Hive, Pig,
Cascading, etc.
research.google.com/archive/mapreduce.html
research.yahoo.com/files/cutting.pdf
developer.yahoo.com/hadoop/
aws.amazon.com/elasticmapreduce/
¿Qué es complicado¿Qué es complicado
en Big Data?en Big Data?
La combinación compleja de hilos de
ejecución, sistemas de almacenamiento  y
modos de trabajo.
ETL, agregaciones, machine learning,
streaming, etc.
Muy complicado obtener productividad y
performance
¿Qué es?¿Qué es?
Es un motor general y muy rápido para el
procesamiento en paralelo de datos en gran
escala.
Motor UnificadoMotor Unificado
APIs de alto nivel conAPIs de alto nivel con
espacio para optimizar espacio para optimizar 
Expresa todo el workflow con una API
Conecta librerías existentes y sistemas
de almacenamiento
RDDRDD
Transformaciones
Acciones
Caché
DatasetDataset
Tipado
Scala y Java
Beneficios
de RDD
DataframeDataframe
Dataset[Row]
Optimizado
Versátil
FUNDAMENTOSFUNDAMENTOS
SparkContextSparkContext
Un programa Spark crea primero un objeto
SparkContext  que le indica a Spark cómo y
dónde acceder a un clúster.
 El shell PySpark y Optimus crean
automáticamente la variable sc.
iPython y los programas deben usar un
constructor para crear un nuevo
SparkContext 
RDDsRDDs
Los Resilient Distributed Datasets (RDD)
son una colección distribuida de objetos
JVM inmutables que permiten realizar
cálculos muy rápidamente, y son la
columna vertebral de Apache Spark.
RDDsRDDs
DataFramesDataFrames
DataFramesDataFrames
DataFramesDataFrames
DataFramesDataFrames
data.map(lambda x: (x.rooms, [x.age,1]) 
.reduceByKey(lambda x, y: [x[0] + y[0], x[1] + y[1]]) 
.map(lambda x: x[0], x[1][0] / x[1][1]) 
.collect()
GroupBy y AVG con RDDs
GroupBy y AVG con DataFrames
data.groupBy("rooms").avg("age")
DataFramesDataFrames
Optimización
¿Por qué?
Los datos sucios cuestan $3
trilliones+ por año
Las compañías pierden 12%
de revenue
Malos Modelos
¿Por qué?
Encuesta Kaggle 16000 DS.Encuesta Kaggle 16000 DS.
Problemas.Problemas.
Problemas
Los Datos están suciosLos Datos están suciosFact of the day:
Problems
Difíciles de usar y entender.
La mayoría de ellos tienen su propio
lenguaje.
No son adecuados para Big Data.
SampleClean no continuado y nada
fácil de usar.
Mala integración con Machine
Learning.
Atascados en la limpieza.
Mal documentado.
Un poco feos.
 
Soluciones actuales paraSoluciones actuales para
limpiar datoslimpiar datos
OptimusOptimus
Optimus is the missing framework for cleaning and pre-processing
data in a distributed fashion. It uses all the power of Apache Spark
(optimized via Catalyst) to do so. It implements several handy tools
for data wrangling and munging that will make your life much easier.
The first obvious advantage over any other public data cleaning
library or framework is that it will work on your laptop or your big
cluster, and second, it is amazingly easy to install, use and
understand.
https://github.com/ironmussa/Optimus
https://hioptimus.com
OptimusOptimus
Características:Características:
Fácil de instalar, usar e implementar.
Utiliza Python y PySpark.
Funciona en tu computadora portátil o
clúster.
DFTransformer con excelentes métodos
para la limpieza de datos y disputas.
DFAnalyzer con excelentes métodos para
visualizar datos y comprender.
Métodos para feature engineering
(realmente fáciles de usar).
Machine Learning con Spark (fácil e
igualmente rápido). Trabajo en progreso.
DemoDemo

Más contenido relacionado

La actualidad más candente

Zeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
Zeus: Uber’s Highly Scalable and Distributed Shuffle as a ServiceZeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
Zeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
Databricks
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
Flink Forward
 
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using AlluxioImproving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Alluxio, Inc.
 
Spark on Kubernetes
Spark on KubernetesSpark on Kubernetes
Spark on Kubernetes
datamantra
 
Spark and S3 with Ryan Blue
Spark and S3 with Ryan BlueSpark and S3 with Ryan Blue
Spark and S3 with Ryan Blue
Databricks
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Flink Forward
 
Query and audit logging in cassandra
Query and audit logging in cassandraQuery and audit logging in cassandra
Query and audit logging in cassandra
Vinay Kumar Chella
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
indevlab
 
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
HostedbyConfluent
 
How to Automate Performance Tuning for Apache Spark
How to Automate Performance Tuning for Apache SparkHow to Automate Performance Tuning for Apache Spark
How to Automate Performance Tuning for Apache Spark
Databricks
 
Dok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
Dok Talks #111 - Scheduled Scaling with Dask and Argo WorkflowsDok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
Dok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
DoKC
 
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
ScyllaDB
 
Go Observability (in practice)
Go Observability (in practice)Go Observability (in practice)
Go Observability (in practice)
Eran Levy
 
Deep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache SparkDeep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache Spark
Databricks
 
Monitoring with Ganglia
Monitoring with GangliaMonitoring with Ganglia
Monitoring with Ganglia
Fastly
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonStreaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Spark Summit
 
Deploying Splunk on OpenShift
Deploying Splunk on OpenShiftDeploying Splunk on OpenShift
Deploying Splunk on OpenShift
Eric Gardner
 
YugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on KubernetesYugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on Kubernetes
DoKC
 
Building your First gRPC Service
Building your First gRPC ServiceBuilding your First gRPC Service
Building your First gRPC Service
Jessie Barnett
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetry
DevOps.com
 

La actualidad más candente (20)

Zeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
Zeus: Uber’s Highly Scalable and Distributed Shuffle as a ServiceZeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
Zeus: Uber’s Highly Scalable and Distributed Shuffle as a Service
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
 
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using AlluxioImproving Data Locality for Spark Jobs on Kubernetes Using Alluxio
Improving Data Locality for Spark Jobs on Kubernetes Using Alluxio
 
Spark on Kubernetes
Spark on KubernetesSpark on Kubernetes
Spark on Kubernetes
 
Spark and S3 with Ryan Blue
Spark and S3 with Ryan BlueSpark and S3 with Ryan Blue
Spark and S3 with Ryan Blue
 
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production DeploymentUsing the New Apache Flink Kubernetes Operator in a Production Deployment
Using the New Apache Flink Kubernetes Operator in a Production Deployment
 
Query and audit logging in cassandra
Query and audit logging in cassandraQuery and audit logging in cassandra
Query and audit logging in cassandra
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
Real-Time Processing of Spatial Data Using Kafka Streams, Ian Feeney & Roman ...
 
How to Automate Performance Tuning for Apache Spark
How to Automate Performance Tuning for Apache SparkHow to Automate Performance Tuning for Apache Spark
How to Automate Performance Tuning for Apache Spark
 
Dok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
Dok Talks #111 - Scheduled Scaling with Dask and Argo WorkflowsDok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
Dok Talks #111 - Scheduled Scaling with Dask and Argo Workflows
 
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
 
Go Observability (in practice)
Go Observability (in practice)Go Observability (in practice)
Go Observability (in practice)
 
Deep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache SparkDeep Dive: Memory Management in Apache Spark
Deep Dive: Memory Management in Apache Spark
 
Monitoring with Ganglia
Monitoring with GangliaMonitoring with Ganglia
Monitoring with Ganglia
 
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena EdelsonStreaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
Streaming Analytics with Spark, Kafka, Cassandra and Akka by Helena Edelson
 
Deploying Splunk on OpenShift
Deploying Splunk on OpenShiftDeploying Splunk on OpenShift
Deploying Splunk on OpenShift
 
YugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on KubernetesYugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on Kubernetes
 
Building your First gRPC Service
Building your First gRPC ServiceBuilding your First gRPC Service
Building your First gRPC Service
 
Observability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetryObservability in Java: Getting Started with OpenTelemetry
Observability in Java: Getting Started with OpenTelemetry
 

Similar a Taller: Limpieza y preparación de datos con Optimus y Apache Spark

Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
BBVA API Market
 
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
Fernando Alfonso Casas De la Torre
 
Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017
Fernando Alfonso Casas De la Torre
 
Cursos Big Data Open Source
Cursos Big Data Open SourceCursos Big Data Open Source
Cursos Big Data Open Source
Stratebi
 
¿Qué es big data?
¿Qué es big data?¿Qué es big data?
¿Qué es big data?
Abel Alejandro Coronado Iruegas
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
Abel Alejandro Coronado Iruegas
 
OpenAnalytics Madrid 2014: Spark
OpenAnalytics Madrid 2014: SparkOpenAnalytics Madrid 2014: Spark
OpenAnalytics Madrid 2014: Spark
Francisco Javier Pulido Piñero
 
Apache Spark y Big Data
Apache Spark y Big DataApache Spark y Big Data
Apache Spark y Big Data
Software Guru
 
M04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bdM04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bd
russellmrr
 
Big data lead colmex
Big data lead colmexBig data lead colmex
Big data lead colmex
Abel Alejandro Coronado Iruegas
 
BigData y MapReduce
BigData y MapReduceBigData y MapReduce
BigData y MapReduce
Tomás Fernández Pena
 
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Stratio
 
Primeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid MeetupPrimeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid Meetup
dhiguero
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
Jorge Lopez-Malla
 
Big Data - Conceptos, herramientas y patrones
Big Data - Conceptos, herramientas y patronesBig Data - Conceptos, herramientas y patrones
Big Data - Conceptos, herramientas y patrones
Juan José Domenech
 
Introduccion a Apache Spark
Introduccion a Apache SparkIntroduccion a Apache Spark
Introduccion a Apache Spark
Gustavo Arjones
 
Big data, Hadoop, HDInsight
Big data, Hadoop, HDInsightBig data, Hadoop, HDInsight
Big data, Hadoop, HDInsight
Gustavo Alzate Sandoval
 
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
 
Que es big data huejutla uaeh
Que es big data huejutla uaehQue es big data huejutla uaeh
Que es big data huejutla uaeh
Abel Alejandro Coronado Iruegas
 
Desmitificando el Big Data
Desmitificando el Big DataDesmitificando el Big Data
Desmitificando el Big Data
Stratebi
 

Similar a Taller: Limpieza y preparación de datos con Optimus y Apache Spark (20)

Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
 
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
 
Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017
 
Cursos Big Data Open Source
Cursos Big Data Open SourceCursos Big Data Open Source
Cursos Big Data Open Source
 
¿Qué es big data?
¿Qué es big data?¿Qué es big data?
¿Qué es big data?
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
 
OpenAnalytics Madrid 2014: Spark
OpenAnalytics Madrid 2014: SparkOpenAnalytics Madrid 2014: Spark
OpenAnalytics Madrid 2014: Spark
 
Apache Spark y Big Data
Apache Spark y Big DataApache Spark y Big Data
Apache Spark y Big Data
 
M04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bdM04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bd
 
Big data lead colmex
Big data lead colmexBig data lead colmex
Big data lead colmex
 
BigData y MapReduce
BigData y MapReduceBigData y MapReduce
BigData y MapReduce
 
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
Primeros pasos con Spark - Spark Meetup Madrid 30-09-2014
 
Primeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid MeetupPrimeros pasos con Apache Spark - Madrid Meetup
Primeros pasos con Apache Spark - Madrid Meetup
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
 
Big Data - Conceptos, herramientas y patrones
Big Data - Conceptos, herramientas y patronesBig Data - Conceptos, herramientas y patrones
Big Data - Conceptos, herramientas y patrones
 
Introduccion a Apache Spark
Introduccion a Apache SparkIntroduccion a Apache Spark
Introduccion a Apache Spark
 
Big data, Hadoop, HDInsight
Big data, Hadoop, HDInsightBig data, Hadoop, HDInsight
Big data, Hadoop, HDInsight
 
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...
 
Que es big data huejutla uaeh
Que es big data huejutla uaehQue es big data huejutla uaeh
Que es big data huejutla uaeh
 
Desmitificando el Big Data
Desmitificando el Big DataDesmitificando el Big Data
Desmitificando el Big Data
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 

Último (20)

MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 

Taller: Limpieza y preparación de datos con Optimus y Apache Spark

  • 1. Ciencia de Datos con Apache Spark y OptimusCiencia de Datos con Apache Spark y Optimus Favio Vázquez Data Scientist @faviovaz https://github.com/faviovazquez https://www.linkedin.com/in/faviovazquez/ March 15th, 2018
  • 2. Esquema 1. Introducción a Apache Spark y1. Introducción a Apache Spark y OptimusOptimus Fundamentos de Spark Fundamentos de Optimus 2. Data Science con Spark y2. Data Science con Spark y OptimusOptimus Limpieza, Exploración y Preparación de Datos con Spark y Optimus Introducción a Machine Learning con Spark y Optimus.
  • 5. 2004 – Google MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat   2006 – Apache Hadoop, originating from the Nutch Project Doug Cutting   2008 – Yahoo web scale search indexing Hadoop Summit, HUG, etc.   2009 – Amazon AWS Elastic MapReduce Hadoop modified for EC2/S3, plus support for Hive, Pig, Cascading, etc. research.google.com/archive/mapreduce.html research.yahoo.com/files/cutting.pdf developer.yahoo.com/hadoop/ aws.amazon.com/elasticmapreduce/
  • 6. ¿Qué es complicado¿Qué es complicado en Big Data?en Big Data? La combinación compleja de hilos de ejecución, sistemas de almacenamiento  y modos de trabajo. ETL, agregaciones, machine learning, streaming, etc. Muy complicado obtener productividad y performance
  • 7. ¿Qué es?¿Qué es? Es un motor general y muy rápido para el procesamiento en paralelo de datos en gran escala.
  • 8. Motor UnificadoMotor Unificado APIs de alto nivel conAPIs de alto nivel con espacio para optimizar espacio para optimizar  Expresa todo el workflow con una API Conecta librerías existentes y sistemas de almacenamiento
  • 9. RDDRDD Transformaciones Acciones Caché DatasetDataset Tipado Scala y Java Beneficios de RDD DataframeDataframe Dataset[Row] Optimizado Versátil
  • 11. SparkContextSparkContext Un programa Spark crea primero un objeto SparkContext  que le indica a Spark cómo y dónde acceder a un clúster.  El shell PySpark y Optimus crean automáticamente la variable sc. iPython y los programas deben usar un constructor para crear un nuevo SparkContext 
  • 12. RDDsRDDs Los Resilient Distributed Datasets (RDD) son una colección distribuida de objetos JVM inmutables que permiten realizar cálculos muy rápidamente, y son la columna vertebral de Apache Spark.
  • 17. DataFramesDataFrames data.map(lambda x: (x.rooms, [x.age,1]) .reduceByKey(lambda x, y: [x[0] + y[0], x[1] + y[1]]) .map(lambda x: x[0], x[1][0] / x[1][1]) .collect() GroupBy y AVG con RDDs GroupBy y AVG con DataFrames data.groupBy("rooms").avg("age")
  • 19.
  • 20.
  • 21.
  • 22. ¿Por qué? Los datos sucios cuestan $3 trilliones+ por año Las compañías pierden 12% de revenue Malos Modelos
  • 23. ¿Por qué? Encuesta Kaggle 16000 DS.Encuesta Kaggle 16000 DS. Problemas.Problemas.
  • 24. Problemas Los Datos están suciosLos Datos están suciosFact of the day:
  • 25. Problems Difíciles de usar y entender. La mayoría de ellos tienen su propio lenguaje. No son adecuados para Big Data. SampleClean no continuado y nada fácil de usar. Mala integración con Machine Learning. Atascados en la limpieza. Mal documentado. Un poco feos.   Soluciones actuales paraSoluciones actuales para limpiar datoslimpiar datos
  • 26. OptimusOptimus Optimus is the missing framework for cleaning and pre-processing data in a distributed fashion. It uses all the power of Apache Spark (optimized via Catalyst) to do so. It implements several handy tools for data wrangling and munging that will make your life much easier. The first obvious advantage over any other public data cleaning library or framework is that it will work on your laptop or your big cluster, and second, it is amazingly easy to install, use and understand. https://github.com/ironmussa/Optimus https://hioptimus.com
  • 27. OptimusOptimus Características:Características: Fácil de instalar, usar e implementar. Utiliza Python y PySpark. Funciona en tu computadora portátil o clúster. DFTransformer con excelentes métodos para la limpieza de datos y disputas. DFAnalyzer con excelentes métodos para visualizar datos y comprender. Métodos para feature engineering (realmente fáciles de usar). Machine Learning con Spark (fácil e igualmente rápido). Trabajo en progreso.