Você está na página 1de 79

Big Data y R

Ing. Juan Pablo Zaldumbide, M.Sc. 1


4 horas aprox.
Ing. Juan Pablo Zaldumbide, M.Sc.
https://www.linkedin.com/in/jzaldumbide/
Twitter: @jpzaldumbide
0996192500
juan.zaldumbide@bigdata-ec.com

2
http://ieeexplore.ieee.org/document/7396475/
3
Contenido
▪ Introducción
▪ Big data
▪ ¿Qué no es Big Data?
▪ ¿Qué es Big Data?
▪ Dimensiones de Big Data
▪ Twi:er API
▪ Ejercicios prácAcos con R

4
1.
Introducción
Gartner's Hype Cycle for Emerging Technologies Maps the Journey to Digital Business 6
▪ Google trends

https://trends.google.com/trends/explore?date=all&q=big%20data

7
▪ Big Data:
https://goo.gl/qXkCUH

8
Big data is like teenage sex: everyone
talks about it, nobody really knows how
to do it, everyone thinks everyone else is
doing it, so everyone claims they are
doing it...
(Dan Ariely,2013)
9
A cualquier proyecto de análisis de datos
se le está poniendo la etiqueta de Big
Data simplemente porque se tratan de
muchos datos..
(www.stratebi.com, 2017 )

10
▪Entre los clientes que desean integrar Big Data, se confunde que es la
“nueva versión de BI”.

▪Según un estudio de mercado, los resultados indican que los cursos


ofertados de Big Data son de gran parte teoría de BI y no de cómo
utilizar herramientas de Big Data para proyectos puntuales.

11
2.
¿Qué no es Big Data?
¿Qué no es Big Data?

▪ No solo es una base de datos enorme.


▪ No es un data warehouse enorme.
▪ No es una nueva forma de Business Intelligence.
▪ No es llevar la base de datos a la nube.
▪ No es analizar solo redes sociales.
▪ No es solo es Hadoop

13
3.
¿Qué es Big Data?
▪Existen muchos conceptos en Internet y si ustedes lo buscan van a
encontrar una gran can9dad de ellos.

h;p://bfy.tw/CpiJ

15
Big Data is data that exceeds the processing
capacity of conventional database systems.
The data is too big, moves too fast, or
doesn’t fit the structures of your database
architectures. To gain value from this data,
you must choose an alternative way to
process it.
(Edd Dumbill, analyst at O’Reilly Media )16
Big Data is data that exceeds the processing
capacity of conven4onal database systems.
The data is too big, moves too fast, or
doesn’t fit the structures of your database
architectures. To gain value from this data,
you must choose an alterna4ve way to
process it.
(Edd Dumbill, analyst at O’Reilly Media )17
Big Data is high-volume, high-velocity and/or
high-variety informa8on assets that demand
cost-effec8ve, innova8ve forms of informa8on
processing that enable enhanced insight,
decision making, and process automa8on.
(Gartner IT Glossary)

18
Big Data is high-volume, high-velocity and/or
high-variety information assets that demand
cost-effective, innovative forms of information
processing that enable enhanced insight,
decision making, and process automation.
(Gartner IT Glossary)

19
4.
Dimensiones de Big
Data
1.- Volumen
2.- Velocidad
3.- Variedad
4.- Variabilidad
5.- Veracidad
6.- Visualización
7.- Valor

(https://goo.gl/rRrLWA)

21
22
http://www.internetlivestats.com/one-second/

23
Volumen

24
Volumen

25
Velocidad

26
Variedad

27
5.
Casos de estudio
Big data y el deporte

https://goo.gl/cXBKo6

https://www.youtube.com/watch?v=DXq30dvE0Xg 29
Big data de las redes sociales para
predecir el comportamiento ciudadano

h"ps://goo.gl/FGhofB

h"ps://www.youtube.com/watch?v=yoSqojO2-CQ
30
Big data de las redes sociales para
predecir el comportamiento ciudadano

h"ps://goo.gl/aesnP1

h"ps://www.youtube.com/watch?v=CcDCqW88uNY 31
6.
Proceso de Big Data
Adquisición Almacenamiento

Indexación Análisis Visualización

33
Adquisición

Logstash es una herramienta administrar logs la cual nos


Logstash sirve para recolectar convertir y re- direccionar a una fuente
de almacenamiento tipo NoSQL.

Python scripts Python permite la conexión con varias fuentes de


información, twitter, facebook, etc.

R R también permite la conexión con varias fuentes de


información, twitter, facebook, etc.
34
Almacenamiento

Es una base de datos basada en Graphos altamente


transaccional y utilizada para encontrar interrelaciones entre
Neo4j entidades.

Es un servidor NoSQL distribuido y altamente escalable el


CouchBase cual nos permite almacenar grandes cantidades de
información en formato JSON.

Hadoop es un framework de código abierto para el


procesamiento y almacenamiento distribuido de grandes
Hadoop (HDFS) volúmenes de información utilizando un modelo de
programación llamado MapReduce.
35
Indexación

Es un servidor de búsqueda que nos permite indexar grandes


cantidades de datos de forma distribuida. En nuestra
elasticsearch experiencia profesional hemos indexado 48 millones de
registros y realizado búsquedas con tiempos de respuesta de
fracciones de segundo.

36
Análisis

Apache Pig es una plataforma de alto nivel la cual corre


sobre Hadoop el cual nos permite crear Jobs y tareas para le
PIG extracción y consulta de datos.

Apache Hive es una infraestructura de Data warehouse que


Hive corre sobre Hadoop para proveer sumarización, consultas y
análisis de datos. Esta consulta lo realiza de forma
transparente con sentencias de tipo SQL.
R nos permite analizar la información de manera ágil y
R transparente a la cantidad de información recopilada.

37
Visualización y
análisis

Es una herramienta de visualización que nos permite mostrar


Kibana los datos indexados que provienen de Elasticsearch.

Mediante varias librerías nos permite mostrar reportes


R estadísticos de la data obtenida

38
Adquisición Almacenamiento

Indexación Análisis Visualización

39
7.
Conceptos varios y
terminología
Cluster y nodo (arquitectura de Big Data)

41
42
43
44
45
46
JSON

47
JSON

48
JSON
▪ https://jsonformatter.curiousconcept.com/
▪ http://www.json.org/

49
Data Science & Data
Analytics

50
Data Scientist

Data Analyst
https://www.datacamp.com/community/blog/data-scientist-vs-data-engineer 51
52
53
54
55
56
57
58
Tested in R version 3.5.1
Juan Pablo Zaldumbide
R.version
59
60
install.packages("twitteR") #Provee acceso al API de Twitter.
install.packages("ROAuth") #Nos permite la autenticación de credenciales.
install.packages("tm") #Librería para realizar minería de texto.
install.packages("wordcloud") #visualización de palabras.
install.packages("NLP") #Procesamiento de lenguaje natural.
install.packages('RCurl') #Permite hacer peticiones HTTP
install.packages("httpuv") #Creación de websockets
install.packages("devtools") #Conjunto de varias librerías
install.packages("rjson") #Permite manejar datos JSON
install.packages("bit64") #Manejo de claves en Bases de Datos
install.packages("httr") #Implementado GET, PUT, POST, DELETE
install.packages("rattle")#Nos permitirá cargar datos de un CSV
install.packages("magrittr")#manejo de datos
install.packages("dplyr")#manejo de datos
install.packages("ggplot2")#visualizacion 61
library("twitteR")
library("ROAuth")
library("tm")
library("wordcloud")
library("NLP")
library('RCurl')
library("httpuv")
library("devtools")
library("rjson")
library("bit64")
library("httr")
library("rattle")
library("magrittr")
library("dplyr")
library("ggplot2")

62
Ejercicios

63
reqURL <- "h+ps://api.twi+er.com/oauth/request_token"

accessURL <- "h+ps://api.twi+er.com/oauth/access_token"

authURL <- "h+ps://api.twi+er.com/oauth/authorize"

Configurar claves de acceso:

Consumer_Key <- "OPsar5I81aEQEKoyxxxxxxx"


Consumer_Secret <- "PeqeBc94PudhVnJvzbpZjK3oxxxxxxxxxxx"
Access_Token<-"955280047-AcJGhVNHIePgDLhxxxxxxxxxxxxxx"
Access_Token_Secret<-"E6sIo2bxK1IGpcNXnd7xxxxxxxxxxxxxx”

64
Nos conectamos a Twi.er:
creden2als <-
OAuthFactory$new(consumerKey=Consumer_Key,consumerSecret=Consumer_Secret,requestURL=reqURL,access
URL=accessURL,authURL=authURL)

setup_twi.er_oauth(Consumer_Key,Consumer_Secret,Access_Token,Access_Token_Secret)

Nos debería mostrar el siguiente mensaje:


## [1] "Using direct authen2ca2on"

65
Extraemos los tweets
McD = userTimeline("McDonalds",n=2000)#busqueda de tweets y almacenamiento de los
datos crudos
McD_tweets=twListToDF(McD) #Grabar los tweets como un dataframe
McD_tweets$date=as.Date(McD_tweets$created,format="%Y-%m-%d" )
knitr::kable(head(McD_tweets[, c("text", "created", "id")],3))

66
Creamos un plot:
plot(table(McD_tweets$date),type = "b",main="McDonalds Frequency of tweets on daily basis
",xlab="day",ylab="number of tweets",col="blue")

67
Guardamos en un archive csv:

write.csv(McD_tweets,"tweets.csv")

68
Analizar los retweets

retweet=aggregate(retweetCount ~ date, data = McD_tweets, max)


ggplot(retweet,aes(x=date,y=retweetCount))+geom_bar(stat = "identity",fill="blue") + labs(title
= "McDonalds followers Engagement")

69
Crear un wordcloud

McD_data<-Corpus(VectorSource(McD_tweets$text))
McD_data<-tm_map(McD_data,stripWhitespace)
McD_data<-tm_map(McD_data,removeNumbers)
McD_data<-tm_map(McD_data,removePunctuation)
McD_data<-tm_map(McD_data,removeWords,stopwords('english'))
McD_data<-
tm_map(McD_data,removeWords,c("will","and","the","our","that","for","are","also","more","has","must","
have","can","get"))
library(stringr)
McD_data=str_replace_all(McD_data,"[^[:graph:]]", " ")

wordcloud(McD_data, scale=c(5,0.5), max.words=200,random.order=FALSE, rot.per=0.35,


use.r.layout=FALSE, colors=brewer.pal(8, "Dark2"))

70
71
Analizamos a quien responde:

top_users<-data.frame(table(McD_tweets$replyToSN))
colnames(top_users)<-c("Screen Name","Number of tweets")
top_users=top_users[order(top_users$`Number of tweets`, decreasing = TRUE), ]
knitr::kable(head(top_users))

72
Hadoop y R

73
https://github.com/RevolutionAnalytics/rhadoop/wiki

74
75
76
77
78
79

Você também pode gostar