24:24
2025-01-27 13:13:59
2:06:12
2025-01-27 13:42:41
3:36:29
2025-01-28 09:08:14
4:33
2025-01-28 13:48:42
55:46
2025-01-28 14:06:51
2:02
2025-01-29 10:22:33
1:02:14
2025-01-29 10:25:14
2:10
2025-01-29 11:38:26
2:26
2025-01-29 12:03:00
1:23:37
2025-01-29 12:05:56
35:40
2025-01-29 15:01:26
1:40:43
2025-01-30 09:07:07
1:08:48
2025-01-30 11:20:20
1:10:50
2025-01-30 13:15:56
3:50:03
2025-01-31 07:20:07
Visit the Talend Big Data Integration y Ecosistema de Talend course recordings page
WEBVTT
-->
perfecto, listo. Bien, eh, para
-->
iniciar el día de hoy, vamos a
-->
hacer entonces lo siguiente.
-->
Primero nos vamos al
-->
hipervisor de Hyper-V. Eh,
-->
vamos entonces aquí en el
-->
escritorio. Accedemos entonces
-->
al acceso directo que tenemos
-->
en el mismo escritorio. Y
-->
debería aparecer la máquina
-->
virtual como guardada, que fue
-->
lo que hicimos el día de
-->
ayer. La idea de esa guardada
-->
es que quedaba exactamente en
-->
el estado en que estaba
-->
anteriormente. Es decir, para
-->
evitar entonces subir nuevamente
-->
los servicios, aunque pude haber
-->
hecho esos servicios de manera
-->
automática, pero listo, la
-->
tengo de esa manera. Vamos
-->
entonces, dale doble clic para
-->
que inicie. Y le damos
-->
entonces eh, clic en el botón
-->
iniciar y debería llevarnos
-->
al estado en que la dejamos
-->
el día de ayer. Vamos a
-->
comprobar ese estado de la
-->
siguiente forma. Abra el
-->
browser que utilizó el día de
-->
ayer para conectarse al al
-->
clóster de Jadut y mostrar las
-->
gráficas a nivel de lo que
-->
contenía ese clóster. Yo si no
-->
estoy mal usé Edge. Y voy a
-->
darle a dirección diez punto
-->
diez punto cero punto tres
-->
punto dieciséis punto noventa
-->
ocho setenta. Y debería
-->
tener entonces los archivos
-->
que trabajamos el día de ayer.
-->
El caso de Beatriz eh noto que
-->
está perfecto. Alejandro
-->
también lo tiene perfecto.
-->
Fernanda está iniciando los
-->
servicios. Brenda lo tiene
-->
perfecto. Brenda eh si está
-->
mal le vaya a ser al en ese
-->
en ese al menú utilities que
-->
está al final y dele browse
-->
para comprobar que los
-->
archivos no hayan sufrido
-->
dele clic en AXA por favor.
-->
A ver ¿Por qué hacemos
-->
esto? El problema que tenemos
-->
con esta parte es que esta es
-->
una máquina virtual de una
-->
máquina virtual entonces puede
-->
haber algún problema con
-->
algún dato específico. Eh
-->
Luis no sé si a ti te está
-->
fucionando no sé mira para
-->
ver si. Exactamente dale F5
-->
ahí para ver. Perfecto está
-->
bien entonces. Vete a
-->
utilities por favor browse.
-->
Mientras vayamos también
-->
subiendo el talent big data
-->
se me escapaba que vamos a
-->
trabajar entonces talent big
-->
data por favor no lo había
-->
subido. Brenda anda voy
-->
contigo entonces eh Liso
-->
vamos a ver voy a ver voy a
-->
acceder a tu máquina ¿OK?
-->
Beatriz ejecute el otro
-->
exactamente había ejecutado
-->
el la versión comercial que
-->
había instalado ahí entonces
-->
voy a ver un momento aquí
-->
está ejecutando
-->
es el el talent eh sí ese que
-->
abrió usted inicialmente es el
-->
talent estudio pero necesitado
-->
que abría ahora por favor el
-->
talent big data y fue el día
-->
de ayer vamos a ver un
-->
momento
-->
no si todo bien Fernanda lo
-->
que es que no haya abierto
-->
el browse pero todo está bien
-->
aquí ahí está todo perfecto
-->
eh Fernanda si está amable
-->
sube el talent big data si
-->
si está amable lo mismo que
-->
Luis también para que sube el
-->
talent big data esa máquina
-->
virtual la dejamos quieta
-->
Pavel no sé si tú eh
-->
configuraste eso ayer no
-->
recuerdo sube el talent big
-->
data por favor es es Pavel
-->
el que subiste el talent
-->
estudio es el segundo que está
-->
del ese que está ahí ese que
-->
está ahí bueno vamos entonces
-->
a iniciar el día de hoy como
-->
venía comentando los
-->
ejemplos del día de ayer
-->
eh estuvieron más relacionados
-->
con la parte de
-->
almacenamiento eh
-->
específicamente el día de
-->
ayer nos conectamos a un S3
-->
y nos conectamos al cluster
-->
que que está configurado en
-->
la máquina virtual eh de a
-->
Hyper VIP hoy en día pues
-->
normalmente estos clústeres es
-->
muy raro a nivel de
-->
infraestructura un problema
-->
es que alguien los monte
-->
seguramente te vas a conectar
-->
alguna solución en la nube
-->
ya sea un MR un tipo sin
-->
el tipo de clústeres más que
-->
de que tengas por ejemplo de
-->
de Azure para conectarse a
-->
este tipo de clúster o en su
-->
defecto eh no utilizas eh
-->
HDFS para almacenar si no
-->
utilizas un object store
-->
C de tipo S3 tipo block el
-->
que tú quieras entonces ya
-->
la parte del almacenamiento
-->
está más diversa con
-->
respecto a lo que se tenía
-->
anteriormente anteriormente
-->
para Big Data me casaba
-->
mucho con la parte de de
-->
Hadut eh aunque los verbos
-->
de almacenamiento para almacenar
-->
y procesar hoy en día hay un
-->
algo más eh más conceptual un
-->
poco en definir Big Data es
-->
cuando proceso no tanto
-->
cuando almaceno partiendo
-->
del hecho en que ya yo tengo
-->
diferentes opciones para
-->
almacenar los datos que yo
-->
quiera procesar entonces hoy
-->
en día se tiene más en
-->
cuenta Big Data es a nivel
-->
de procesamiento no tanto de
-->
almacenamiento por el
-->
mismo modo vamos a hacer lo
-->
siguiente entonces vamos a ir
-->
a los job design tenemos una
-->
carpeta que se llama AXA y
-->
ahora vamos a hacer lo
-->
siguiente vamos a crear una
-->
subcarpeta eh perdón una
-->
subcarpeta aquí un folder
-->
dentro de AXA para organizarnos
-->
un poquito más que se llame
-->
procesamiento Big Data esto
-->
necesita no no acepta espacio
-->
en blanco entonces lo separo
-->
con Underscore eh la carpeta
-->
la llame Big Data Finish aquí
-->
perfecto vamos a crear entonces
-->
eh un job dentro de la carpeta
-->
Procesamiento Big Data que lo
-->
vamos a llamar Job Underscore
-->
Job Película Underscore más
-->
popular más popular por
-->
década eh Job Película más
-->
popular por década recuerde
-->
que tiene que que usar un
-->
carácter eh porque no acepta
-->
el espacio como carácter
-->
especial entonces sepárelo
-->
por un Underscore Job
-->
Película más popular por
-->
década ahora lo que vamos
-->
a hacer vamos a hacer
-->
un progresamiento yo en la
-->
parte teórica le le dije
-->
prácticamente lo que tú haces
-->
con Big Data es prácticamente
-->
lo que hacías anteriormente
-->
sin Big Data con
-->
composición nacional la única
-->
diferencia es que puede haber
-->
una variedad en los datos y
-->
segundo que quizás eh ese gran
-->
volumen de datos necesita
-->
entonces que sea progresado
-->
con Big Data por eh por algo
-->
relacionado con la parte de
-->
velocidad entonces vamos a
-->
darle aquí Finish y para
-->
rehusar un poco ya lo que
-->
hemos hecho y no tener que
-->
volver a configurar en EBS es
-->
lo mismo váyase a la carpeta
-->
y busque el último ejemplo
-->
que hicimos el día de ayer
-->
que fue eh Jot formatear
-->
archivo que realidad no lo
-->
formateamos por tiempo no
-->
lo alcanzamos a formatear
-->
Jot formatear archivo por
-->
favor lo abre y cópiese el
-->
tepreyop y el HDFC
-->
Connection lo copia para no
-->
tener nuevamente que que
-->
configurar esto y lo pega acá
-->
listo
-->
bien la idea es no tener que
-->
rehusar en EBS es lo mismo
-->
entonces pegas acá si ya
-->
cierran el archivo ese que
-->
hicimos el día de ayer para
-->
que de pronto no te cause
-->
algún tipo de confusión
-->
listo eh qué es lo que voy
-->
a hacer eh voy a mostrar
-->
inicialmente eh el archivo
-->
que lo tengo por aquí creo
-->
que sí bueno voy a mostrar
-->
este archivo que lo tengo
-->
por aquí se llama Phil
-->
actor que ya está en el en
-->
el clóster de Hadud en ese
-->
momento y lo muestro por aquí
-->
tiene hasta hacer de aquí
-->
este archivo lo que tiene
-->
es datos de los actores
-->
principales de una película
-->
entonces tiene por ejemplo el
-->
año el el tiempo de la
-->
película que está como
-->
longitud en minutos el título
-->
de la película el actor
-->
principal la actriz principal
-->
director y la popularidad
-->
entonces aquí tiene en realidad
-->
que el archivo es muy
-->
pequeño carecería de sentido
-->
a nivel pragmático en
-->
plástico a nivel de
-->
producción usar nuestro
-->
archivo para saber data
-->
porque es demasiado pequeño
-->
esto lo puedo hacer sin
-->
necesidad de big data pero
-->
eh partiendo del hecho en que
-->
tengo poco recurso pues eh al
-->
final trate de piense que
-->
este archivo es inmensamente
-->
grande o que hay un conjunto
-->
de archivos en que me toca
-->
unirlos y la cantidad del
-->
volumen es grande para la
-->
velocidad que en el cual yo
-->
quiero ejecutar o que me
-->
termine de ejecutar el
-->
proceso pero bien eh en pocas
-->
palabras yo tengo el año de
-->
la película tengo aquí la
-->
popularidad de la película y
-->
voy a sacar la película más
-->
popular por por década ¿OK?
-->
Ese es lo que voy a hacer
-->
¿Listo? Asumamos entonces que
-->
el archivo es elevadamente
-->
grande por volumen y me toca
-->
entonces progresarlo con
-->
big data para obtener
-->
digamos respuestas en tiempo
-->
real. Me devuelvo nuevamente
-->
a la al talent big data
-->
esta que está aquí. Y lo
-->
primero que voy a hacer
-->
entonces es que voy a leer
-->
el archivo que ya tengo en
-->
el clóset de jadú que lo
-->
tuvimos el día de ayer. Para
-->
leer un archivo directamente del
-->
clóset de jadú entonces usamos
-->
a T HDFS input HDFS input
-->
esto es para leer algo para
-->
que lo tenga presente
-->
cualquier componente de
-->
talent que tenga relación con
-->
la lectura o escritura de
-->
algo siempre tiene que tener
-->
un esquema una estructura
-->
hay que configurar el esquema
-->
entonces este input va a
-->
intentar leer un archivo
-->
entonces con esos procesos
-->
de lectura y escritura de
-->
archivos es necesario que
-->
tenga una un esquema o sea
-->
decir cómo es la configuración
-->
que tiene las columnas para
-->
talent no le interesa el nombre
-->
de las columnas tú puedes
-->
llamarla como tú quieras al
-->
fin y al cabo la interesa es
-->
el orden y el tipo de datos
-->
de las columnas eso es lo que
-->
le interesa al final pero yo
-->
puedo hacer un esquema y los
-->
encabezados no necesariamente
-->
tienen que coincidir con el
-->
archivo original para esto ya
-->
recordamos que para poder
-->
configurar un componente
-->
entable tiene que coger la
-->
gráfica del componente o sea
-->
el icono del componente le
-->
da doble clic y nos lleva en
-->
la perspectiva de abajo para
-->
hacer la configuración
-->
como ya tenemos una conexión
-->
existente y el día ayer te
-->
recomendé cuando deberías
-->
usar un HDFS connection cuando
-->
sepas en que en el mismo
-->
yod vas a tener varios
-->
componentes de tipo HDFS
-->
entonces lo más recomendable
-->
porque es más sencillo
-->
configurarlo es tener nada más
-->
una conexión y esa conexión la
-->
reuso n veces en el mismo yodo
-->
sería la condición ideal o
-->
digamos el caso de estudio
-->
ideal en el cual deberías
-->
usar el HDFS connection
-->
vamos a decirle entonces en la
-->
confesión del input en que
-->
vamos a usar una conexión
-->
existente
-->
y expando entonces la lista de
-->
conexiones y debería
-->
aparecer la conexión como
-->
tal acto seguido entonces
-->
voy a definir lo siguiente voy
-->
a escoger el archivo como lo
-->
con nombre el archivo tengo al
-->
final un botón
-->
que me va a permitir conectarme
-->
al
-->
al closer de hadut y voy a
-->
escoger el que se llama fil
-->
actor que ya lo habíamos
-->
definido el día de ayer
-->
fil actor
-->
perfecto ahora vamos a hacer
-->
la configuración del archivo
-->
note algo muy particular de
-->
la herramienta es que la
-->
configurando con los
-->
componentes de tipo HDFS es
-->
que la lectura específica
-->
sean archivos delimitados
-->
te preguntarás si los archivos
-->
no están delimitados
-->
entonces te tocaría hacer un
-->
formateo de esos datos para
-->
que se han leído
-->
directamente con los componentes
-->
de HDFS ya con la versión
-->
comercial tienes otros
-->
componentes que pudieras
-->
agregar
-->
listo entonces el tipo de
-->
archivo es tipo textual
-->
esta parte aquí hay un tipo
-->
que se llama sequence files
-->
ese sequence file lo voy a
-->
explicar mejor con hype
-->
pero voy a dejarlo aquí con
-->
text
-->
el separador de fila es
-->
slash n
-->
separador de campo es
-->
punto y coma así entonces
-->
tiene que coincidir estos
-->
elementos
-->
y al final el header
-->
hay un header en ese archivo
-->
entonces le coloco uno
-->
diciéndole que la primera
-->
fila son los encabezados
-->
del archivo
-->
en pocas palabras en que no la
-->
lea como les decía y debe
-->
tener estos memorias y va a
-->
trabajar con esta herramienta
-->
todas las herramientas que
-->
tienen lectura y escritura de
-->
archivo tengo que con tengo
-->
que especificar un esquema
-->
entonces puede que varíe la
-->
posición en los componentes
-->
de talent lo que sí es
-->
seguro es que vas a encontrar
-->
esto en alguna parte de esta
-->
configuración de los
-->
componentes en este caso está
-->
en la parte de arriba y
-->
veces que está en la parte del
-->
medio y otro está en la
-->
parte de abajo
-->
entonces dele clic en
-->
editar esquema y este esquema
-->
de aquí yo puedo hacerlo de
-->
forma manual
-->
creo que podía ser bueno
-->
cuando la cantidad de
-->
columnas es muy pequeña
-->
quizás dos máximo cinco
-->
pero si la cantidad de filas
-->
es muy elevada lo mejor es que
-->
haga como hicimos el día de
-->
ayer creamos una metadata
-->
con el tipo de archivo
-->
recuperamos los datos en las
-->
columnas en el orden en que
-->
está y los tipos de datos que
-->
asumió la herramienta y
-->
mejor la importo esa es la
-->
mejor forma de hacerlo
-->
entonces aquí le damos
-->
importar y el día de ayer
-->
hicimos
-->
un esquema que se llama
-->
filactor.xml
-->
dele abrir por favor
-->
y dele aquí ok
-->
se cuenta que hasta el momento
-->
lo que hemos hecho es
-->
prácticamente lo del día de
-->
ayer en el cual nos estamos
-->
conectando a un archivo
-->
ahora pasa lo siguiente
-->
voy a resolver esto
-->
cómo voy a resolver esto
-->
bueno la idea va a ser la
-->
siguiente
-->
voy a intentar
-->
voy a decirle un poco la
-->
metodología que voy a
-->
trabajar el día de hoy el día
-->
del día de mañana
-->
quizás el yoke lo voy a
-->
resolver en algunos casos de
-->
forma ineficiente
-->
porque la idea que voy a
-->
buscar es que usted pueda
-->
ver la mayor cantidad de
-->
componentes en este curso
-->
o sea entonces podamos
-->
hacer los yoke con
-->
diferentes componentes y
-->
pueda ya tener digamos
-->
un background mucho más
-->
grande de que hace cada
-->
componente en el caso del
-->
talent big data
-->
entonces miren la cual va a
-->
ser la idea que cómo voy a
-->
resolver este señor que está
-->
acá
-->
se lo voy a resolver de esta
-->
manera
-->
de otro momento
-->
listo aquí
-->
este señor me está
-->
espera un momento que
-->
resuelva aquí algo
-->
bueno mejor lo veo acá
-->
porque me tiene hay unas
-->
piezas
-->
discúlpeme un momento y se
-->
lo muestro mejor acá
-->
por favor
-->
entonces
-->
por ejemplo lo siguiente
-->
en que yo tengo
-->
el año de la película
-->
noventa noventa noventa
-->
noventa y uno noventa y
-->
dos noventa y tres noventa
-->
y cuatro
-->
entonces lo que voy a hacer
-->
es lo siguiente voy a
-->
convertir el año en
-->
década
-->
en pocas palabras este
-->
año que está aquí noventa
-->
y uno lo voy a convertir
-->
en noventa
-->
porque a mí me interesa es
-->
la película
-->
más popular por década
-->
entonces los años los voy
-->
a convertir en década
-->
y ya después que convierta
-->
los años en década
-->
hago una agrupación
-->
y en esa agrupación
-->
entonces saco los
-->
diferentes elementos
-->
ok eso es lo que voy a
-->
hacer esa es la idea que
-->
voy a entonces
-->
listo ahora voy a hacer
-->
lo siguiente
-->
voy a usar un componente
-->
que es muy popular en
-->
talent
-->
que se utiliza mucho para
-->
mapear o para cambiar el
-->
formato de los datos
-->
en este caso voy a usar
-->
entonces el
-->
tema
-->
y voy inicialmente
-->
para hacer un
-->
testeo
-->
voy a colocar aquí un
-->
telocrow
-->
para testear el resultado
-->
que me va a dar
-->
listo entonces
-->
el telocrow
-->
voy a agregar otro
-->
componente que es
-->
fundamental
-->
que es un componente
-->
para agrupar datos
-->
voy a hacer entonces
-->
aquí un
-->
telocrow
-->
se llama
-->
telocrow
-->
telocrow
-->
y voy a usar otro
-->
componente que se llama
-->
telocrow
-->
componente muy
-->
utilizado en talent
-->
en este orden
-->
y voy a decirle
-->
la idea como tal
-->
aclaro que la idea
-->
fundamental es
-->
que haga yo
-->
que agregar un componente
-->
nuevo
-->
quizás
-->
esa no es la forma más
-->
eficiente pero
-->
aprovecho esta forma
-->
para agregar
-->
el test short
-->
y el
-->
telocrow
-->
entonces son
-->
cuantos componentes
-->
he agregado
-->
uno, dos, tres, cuatro, cinco
-->
componentes
-->
el input
-->
el temap
-->
el test shortrow
-->
el telocrow
-->
y el
-->
telocrow
-->
el telocrow
-->
ya saben que
-->
hay algunos
-->
componentes en talent
-->
que no están
-->
instalados
-->
básicamente
-->
técnicamente que es
-->
en el caso de java
-->
como este está
-->
basado en java
-->
es descargar un
-->
punto YAR
-->
que es el que tiene
-->
la codificación
-->
de ese componente
-->
primero entonces
-->
aquí
-->
hay dos
-->
corrientes
-->
de personas
-->
elige cual va a ser
-->
la forma en que
-->
tu quieres trabajar
-->
una forma es
-->
la que hice
-->
ahora mismo es que
-->
yo tengo todos
-->
los componentes
-->
agrego todos los componentes
-->
de java
-->
los conecto
-->
y después los
-->
configuro
-->
hay personas que
-->
no le gusta
-->
trabajar así
-->
hay personas que
-->
van agregando
-->
componentes
-->
según lo que van
-->
requiriendo
-->
al fin
-->
adaptate como
-->
tú
-->
digamos como
-->
mejor crees tú
-->
que
-->
trabajes más rápido
-->
en este caso
-->
voy a conectar
-->
entonces
-->
el HDFS input
-->
con
-->
el temap
-->
el temap
-->
y lo conecto
-->
con el
-->
techo row
-->
y voy a
-->
colocar aquí
-->
como salida
-->
ordenar
-->
registros
-->
voy a conectar
-->
el techo row
-->
con el
-->
T-aggregated
-->
e inicialmente
-->
voy a mandar
-->
el T-aggregated row
-->
al
-->
techo
-->
log row
-->
este techo lo voy a
-->
tener ahí
-->
inicialmente
-->
solamente
-->
es para
-->
para
-->
comprobar
-->
antes de
-->
finalizar
-->
el job
-->
completo
-->
voy a
-->
comprobar
-->
que lo que quiero
-->
hacer
-->
es lo que me
-->
está dando el job
-->
recordamos
-->
como tip
-->
entonces
-->
que
-->
ese punto
-->
rojo que
-->
tenemos ahí
-->
en el
-->
temap
-->
o en
-->
cualquier
-->
componente
-->
que tenga
-->
detalle
-->
y te
-->
hace
-->
falta una
-->
configuración
-->
ahí
-->
bien
-->
entonces
-->
veamos
-->
vamos a
-->
configurar
-->
inicialmente
-->
el tema
-->
recuerda que
-->
como
-->
como
-->
buena
-->
práctica
-->
te
-->
recomiendo
-->
en que
-->
no dejes
-->
estas
-->
conexiones
-->
con
-->
nombres
-->
genéricos
-->
row 1
-->
row 2
-->
solamente
-->
la voy a
-->
cambiar
-->
a ese row 1
-->
dale click
-->
primero en
-->
un row 1
-->
y después
-->
otra vez click
-->
y lo más
-->
recomendable
-->
es que
-->
le des
-->
el nombre
-->
de la
-->
de la
-->
entrada
-->
en este caso
-->
como el
-->
archivo se llama
-->
fill actor
-->
voy a
-->
cambiar ese row a
-->
fill
-->
on the record actor
-->
eso no
-->
más lo voy a
-->
hacer aquí
-->
para recordar
-->
de ayer
-->
lo demás
-->
no lo
-->
voy a hacer
-->
para evitar
-->
veníamos
-->
para
-->
no
-->
consumir
-->
tanto tiempo
-->
vamos entonces
-->
aquí ahora
-->
a configurar
-->
el tema
-->
nota
-->
entonces
-->
que
-->
aquí
-->
aparece
-->
fill actor
-->
que fue
-->
el nombre
-->
de la
-->
entrada
-->
recuerda que
-->
cambia row 1
-->
a fill actor
-->
entonces
-->
esto que
-->
está acá
-->
arriba
-->
tiene
-->
el nombre
-->
de la entrada
-->
por eso es que
-->
es más recomendable
-->
que le des
-->
el nombre
-->
allá
-->
para que
-->
puedas
-->
guiarte mejor
-->
aquí en el
-->
tema
-->
y más cuando
-->
vayas a hacer
-->
un joy
-->
a nivel
-->
de TL
-->
listo
-->
nota lo siguiente
-->
ahora
-->
estos archivos
-->
estas columnas
-->
que están
-->
aquí
-->
corresponden a
-->
las columnas
-->
de la entrada
-->
del input
-->
recordar
-->
aquel input
-->
hicimos
-->
un esquema
-->
e importamos
-->
los diferentes
-->
columnas
-->
que va a tener
-->
y acá también
-->
coincide los tipos
-->
de datos
-->
tú puedes cambiar
-->
los tipos
-->
de datos
-->
si tú quieres acá
-->
pero tienes que
-->
tener muy
-->
pendiente
-->
que de pronto
-->
puede haber
-->
unas
-->
conversiones
-->
en que
-->
el lenguaje
-->
ya no las
-->
permita
-->
por ejemplo
-->
si yo
-->
intentara
-->
no la gusta
-->
ya por favor
-->
si yo intentara
-->
cambiar este
-->
de integer
-->
a string
-->
aquí va a ver
-->
un error
-->
¿por qué?
-->
porque el
-->
dato viene
-->
de tipo integer
-->
de la entrada
-->
y cuando
-->
llega aquí
-->
lo intenta convertir
-->
a string
-->
y esa
-->
esa conversión
-->
no la puede hacer
-->
directamente
-->
entonces
-->
sí puedes cambiar
-->
los tipos
-->
de datos
-->
pero tienes que
-->
estar muy
-->
pendiente
-->
en cómo
-->
vas a convertir
-->
esos tipos
-->
de datos
-->
¿ok?
-->
no voy a hacer
-->
tanto ejemplo
-->
con esto porque
-->
lo principal
-->
aquí es
-->
big data
-->
esto normalmente
-->
venía de un curso
-->
de tres días
-->
que se llamaba
-->
talent data integration
-->
donde usted
-->
aprendía esta
-->
parte pero
-->
no me puedo
-->
demorar mucho
-->
en ciertos
-->
detallitos
-->
aquí
-->
normalmente
-->
¿cómo
-->
hace para mapear
-->
datos
-->
en esta herramienta
-->
para mapear
-->
datos entonces
-->
aquí tengo
-->
el dato de entrada
-->
y para mapear
-->
el dato
-->
lo más recomendable
-->
es que hagas
-->
lo siguiente
-->
que definas
-->
una variable
-->
intermedia
-->
entonces
-->
dale click
-->
aquí
-->
en variable
-->
en el más
-->
este que está ahí
-->
aquí te pide
-->
un tipo
-->
de datos
-->
y en este
-->
caso quiero que
-->
el tipo de
-->
datos de
-->
salida
-->
sea un entero
-->
entonces
-->
voy a cambiar
-->
esto a entero
-->
a integer
-->
y nota que
-->
del lado
-->
siguiente
-->
o sea la columna
-->
siguiente al table
-->
que tienes
-->
te está el nombre
-->
la variable
-->
esta variable
-->
la voy a llamar
-->
década
-->
solamente
-->
como
-->
elemento
-->
informativo
-->
nota que
-->
al ladito
-->
de la variable
-->
vas a tener un
-->
check box
-->
cierto
-->
si
-->
ese check box
-->
está habilitado
-->
nota que
-->
te cambia
-->
el tipo de datos
-->
de int
-->
a integer
-->
me explico
-->
lo que pasa
-->
es que int
-->
es lo que llaman
-->
un tipo de datos
-->
simple en java
-->
e integer
-->
es un tipo
-->
de datos
-->
object
-->
en pocas palabras
-->
en palabras llanas
-->
y castas
-->
para que sirve eso
-->
si la expresión
-->
te va a
-->
volver un nulo
-->
tienes que
-->
definirlo
-->
como queto
-->
o sea como integer
-->
o sea tienes que
-->
estar chuleado
-->
si sabes
-->
que la expresión
-->
no te devuelve
-->
integer siempre
-->
te devuelve un valor
-->
entonces lo dejas
-->
de tipo simple
-->
o sea
-->
sin chulearlo
-->
porque hay un error
-->
si lo
-->
si por ejemplo
-->
si tienes tipo simple
-->
así como está
-->
inicialmente
-->
sin el chulito
-->
y te devuelva a nulo
-->
que sale un error
-->
de ejecución
-->
porque los tipos
-->
simples en java
-->
siempre tienen que
-->
tener un valor
-->
esto no es de talent
-->
esto es necesariamente
-->
de java
-->
listo entonces
-->
aquí hay varias formas
-->
de hacer lo mismo
-->
voy a empezar con una
-->
quiero tomar
-->
ese campo que se llama
-->
gear
-->
y pasarlo y hacer
-->
una operación
-->
para convertirlo en una década
-->
entonces
-->
voy a tomar esta columna
-->
que se llama gear
-->
y la voy a soltar
-->
aquí donde dice expression
-->
para que sea más sencillo
-->
cuando colocas
-->
el mouse
-->
en la expresión
-->
dale click aquí
-->
y se te va a habilitar
-->
un botoncito
-->
que te va a abrir
-->
un texaria
-->
de configuración
-->
dale click
-->
ahí en ese botón
-->
por favor
-->
para que te aparezca
-->
un texario
-->
eso mismo que hice
-->
de tomar ese gear
-->
y pasarlo a este lado
-->
lo hubiese hecho
-->
también igual
-->
no lo haga
-->
para que lo tenga usted
-->
allá nada más
-->
para que no tenga que hacer
-->
dos cosas
-->
es
-->
abro la expresión
-->
vacía
-->
y aquí me aparecen
-->
todas las columnas
-->
de entrada que están
-->
de este lado
-->
tanto si yo pude
-->
también haber hecho esto
-->
darle doble click
-->
y me hubiese hecho
-->
exactamente lo mismo
-->
ok
-->
ahora nota que
-->
en la parte de aquí abajo
-->
te aparecen
-->
una parte de funciones
-->
estas funciones
-->
estas funciones
-->
que te aparecen
-->
de este lado
-->
no cierre solamente
-->
mira mi pantalla
-->
esas funciones
-->
que te aparecen
-->
de ese lado
-->
son las mismas funciones
-->
que te
-->
que has agregado
-->
en esta sesión
-->
que hice code
-->
en esta sesión
-->
code
-->
donde están unos códigos
-->
hechos netamente
-->
en java
-->
esta que está
-->
no la está
-->
mira lo de este lado
-->
son las funciones
-->
que te aparecen allá
-->
entonces tú puedes agregar
-->
nuevas funciones
-->
tú las codificas
-->
nuevas funciones
-->
y las puedes re-usar
-->
n veces
-->
en los proyectos
-->
que tengo
-->
mi recomendación
-->
yo nunca lo he hecho
-->
mi recomendación es
-->
si sabes que vas a crear
-->
una función
-->
en que la vas a re-usar
-->
en njobs
-->
sería bueno que la codifiques
-->
pero si la vas a usar
-->
un solo joc
-->
haz el código
-->
en algo que te voy a mostrar
-->
más adelante
-->
haz el código
-->
en un componente
-->
que se llama te-java
-->
y listo
-->
lo pones el código ahí
-->
pero creo que
-->
desgastarse
-->
en subir esto acá
-->
colocarlo en el formato
-->
que lo especifica tal
-->
creo que es
-->
mucho trabajo
-->
para algo que de pronto
-->
vas a usar solamente
-->
un solo joc
-->
listo
-->
me devuelvo entonces
-->
nuevamente
-->
era solamente informativo
-->
esa parte aquí
-->
y voy a convertir
-->
este año
-->
voy a convertir
-->
este año
-->
entonces
-->
en una década
-->
para hacer esto
-->
esto es netamente java
-->
hago lo siguiente
-->
divido entre 10
-->
y multiplico por 10
-->
ya le explico entonces
-->
divido entre 10
-->
y multiplico por 10
-->
explico de forma sencilla
-->
que fue lo que hice ahí
-->
y esto al final
-->
termina siendo
-->
netamente algo
-->
particular de java
-->
entonces
-->
pasa lo siguiente
-->
supongamos que tú tengas
-->
este número integer
-->
giar
-->
igual a 1991
-->
si yo por ejemplo
-->
digo
-->
giar
-->
entre 10
-->
si el dato
-->
este es entero
-->
notará lo siguiente
-->
que giar entre 10
-->
daría
-->
1999,1
-->
verdad
-->
pero como el dato
-->
es entero
-->
entonces la división
-->
de dos entero
-->
en java
-->
da en otro entero
-->
por lo tanto
-->
esta parte real se quita
-->
y me daría
-->
199
-->
1999
-->
si lo multiplico
-->
por 10
-->
convierto el año
-->
91
-->
en 1990
-->
que es la década
-->
que quiero
-->
ahora
-->
si el dato
-->
es un doble
-->
en java
-->
por ejemplo
-->
doble
-->
voy a copiar esto
-->
así
-->
doble
-->
y este dato
-->
doble
-->
o sea real
-->
o float
-->
como tú quieras
-->
en data
-->
en java
-->
y datos reales
-->
sería float y doble
-->
si yo hago esto
-->
esto me daría
-->
si me estaría dando
-->
esto si me está dando
-->
esta parte
-->
entonces ahí
-->
porque me está resolviendo
-->
el problema
-->
porque el dato es entero
-->
si el dato fuera doble
-->
o float
-->
no me daría
-->
lo que yo quiero
-->
entonces
-->
aquí tengo
-->
divido entre 10
-->
y multiplico por 10
-->
ok
-->
vamos a pasar unos datos
-->
de aquí
-->
para acá
-->
el caso
-->
no recuerdo el nombre
-->
ayer que se
-->
el día de ayer
-->
alguien se le
-->
todos los colunas
-->
se le colocaron
-->
una sola
-->
entonces yo te recomiendo
-->
que expandas esto
-->
un poco
-->
verticalmente
-->
para que tengas espacio
-->
y vamos a soltar
-->
de este lado
-->
década
-->
y vamos a soltar
-->
entonces
-->
década
-->
title
-->
y popularidad
-->
que son los tres campos
-->
que necesito
-->
para resolver
-->
el problema
-->
de la película
-->
más popular
-->
por década
-->
si
-->
la fusión
-->
esta
-->
es indistinto
-->
en este caso
-->
en particular
-->
te explico
-->
porque en este caso
-->
el paréntesis
-->
y el por
-->
tienen
-->
la misma
-->
precedencia
-->
entonces
-->
se evalúa
-->
de izquierda a derecha
-->
o sea aquí
-->
evaluaría como el
-->
perdón
-->
el entre
-->
y el por tiene
-->
la misma precedencia
-->
entonces evalúa
-->
de izquierda a derecha
-->
pero fíjate algo
-->
con lo que tú me estás
-->
mencionando
-->
si yo tengo
-->
esto así
-->
por ejemplo
-->
tengo ahora
-->
GR
-->
tengo esto
-->
actualmente así
-->
si yo tengo
-->
este más aquí
-->
el por
-->
tiene más
-->
precedencia entonces aquí
-->
multiplicaría
-->
y después sumaría
-->
entonces aquí
-->
si tú quieres sumar
-->
aquí si es necesario
-->
esto así
-->
porque el por
-->
y el tiene más
-->
precedencia
-->
para el caso
-->
en particular
-->
pues no
-->
daría lo mismo
-->
si le coloco el paréntesis
-->
gracias a ti
-->
por preguntar
-->
fíjate que
-->
mientras
-->
algunos
-->
terminan aquí
-->
el caso
-->
del
-->
el caso
-->
del hijo mío
-->
cuando estaba
-->
en primaria
-->
entonces el
-->
profesor le coloco
-->
una expresión
-->
de esta
-->
donde tenía un más
-->
y un menos
-->
y un por
-->
y entonces
-->
el profesor
-->
sumaba
-->
primero restaba
-->
y después multiplicaba
-->
no hay paréntesis
-->
entonces
-->
yo le estaba
-->
yo le ayudaba
-->
a mi hijo a resolver
-->
los problemas
-->
y
-->
perdió esa
-->
evaluación
-->
y entonces me tocó bien
-->
de profesor
-->
mira qué pena
-->
lo que pasa es que hay
-->
una precedencia de
-->
operadores
-->
pero eso va más que todo
-->
para la gente de
-->
sistema
-->
la gente pronto
-->
no le presta mucha
-->
atención a eso
-->
pero bueno
-->
entonces
-->
aquí tenemos
-->
esta parte
-->
ok
-->
listo
-->
yes
-->
me dice
-->
retomo
-->
la idea entonces
-->
al final
-->
de que quiero
-->
resolver
-->
al final me va a quedar
-->
más o menos
-->
esto
-->
mire
-->
lo siguiente
-->
ahora
-->
voy a tomar
-->
estos datos
-->
aquí
-->
me va a quedar
-->
vamos a poner que
-->
este ya era
-->
noventa y uno
-->
me va a quedar todo
-->
en noventa
-->
ahora lo que quiero hacer
-->
es lo siguiente
-->
voy a
-->
ordenar
-->
por década
-->
voy a
-->
ordenar
-->
por década
-->
ya les
-->
voy a hacer lo siguiente
-->
ahora
-->
voy a ordenar
-->
los datos
-->
una particularidad
-->
que se tiene
-->
con los
-->
componentes
-->
de talent
-->
es que
-->
cuando hay
-->
un esquema
-->
de entrada
-->
el esquema
-->
cuando hay un
-->
esquema
-->
de entrada
-->
y de
-->
salida
-->
en este
-->
caso
-->
tema que es
-->
un esquema
-->
de entrada
-->
y de salida
-->
la
-->
salida
-->
automáticamente
-->
y esto me va
-->
a llegar
-->
acá como
-->
entrada
-->
en el
-->
entonces
-->
haga lo
-->
siguiente
-->
vaya al
-->
y note ve que
-->
aquí tiene
-->
editar
-->
esquema
-->
entonces como
-->
este tiene
-->
que trabajar
-->
con
-->
datos
-->
la posición
-->
te va a
-->
cambiar
-->
pero al final
-->
te va a dar
-->
lo mismo
-->
entonces
-->
si das
-->
clic aquí
-->
en editar
-->
esquema
-->
darte
-->
cuenta que
-->
aquí
-->
esta es lo que
-->
esta es la
-->
salida
-->
la entrada que me está
-->
llegando
-->
del tema
-->
y esta es la
-->
entrada que
-->
tengo
-->
del techo
-->
esto es poco para
-->
perdón
-->
esta es la
-->
salida del
-->
tema
-->
y esta es la
-->
entrada del
-->
techo
-->
aquí tú puedes
-->
agregar
-->
y quitar
-->
lo que tú
-->
quieras
-->
en caso
-->
de que
-->
pasa
-->
pasa
-->
y que es
-->
lástima que no le hago
-->
un ejemplo para
-->
cada cosa
-->
siempre tengo que
-->
invertirle
-->
pasa en que de
-->
pronto
-->
suponte que aquí
-->
no te
-->
llegó
-->
es muy raro que
-->
pase esto
-->
que de pronto
-->
tenga aquí
-->
una salida
-->
y que si
-->
se hace
-->
con esta
-->
entrada acá
-->
entonces tú
-->
le puedes
-->
dar aquí
-->
sincronizar
-->
columnas
-->
y lo que
-->
hace eso
-->
es que
-->
se puede
-->
pasar pero eso
-->
para eso es
-->
sincronizar
-->
columnas
-->
entonces vamos
-->
a configurar
-->
el techo
-->
row
-->
y el techo
-->
row quiero que
-->
haga
-->
lo siguiente
-->
dele aquí
-->
un más
-->
y este más
-->
entonces
-->
te coloca
-->
las
-->
columnas que
-->
tiene
-->
entrada en este caso
-->
quiero primero
-->
por década
-->
y aquí
-->
tiene que
-->
estar muy
-->
pendiente con
-->
el tipo
-->
de
-->
datos
-->
que vas a
-->
ordenar
-->
década es integer
-->
por lo tanto es
-->
numérico
-->
y aquí puedes
-->
ordenar
-->
ascendente o
-->
descendente
-->
para el caso
-->
particular
-->
me da lo
-->
mismo si es
-->
ascendente
-->
o
-->
descendente
-->
vamos ahora
-->
a hacer
-->
un nuevo
-->
criterio
-->
de ordenamiento
-->
y aquí
-->
voy a
-->
ordenar
-->
ahora por
-->
popularidad
-->
popularidad
-->
también te
-->
recomendé
-->
como esto es un
-->
table
-->
en java
-->
java tiene un
-->
pequeño box
-->
que no ha podido
-->
corregir que a veces
-->
yo muevo con el
-->
mouse y no me
-->
actualiza
-->
cuando tengas un
-->
table acostumbre
-->
darle enter
-->
darle enter
-->
para que tome
-->
el cambio
-->
y quiero que este
-->
señor me
-->
ordene
-->
descendentemente
-->
entonces retomo
-->
nuevamente la
-->
idea mejor acá
-->
en un nuevo
-->
archivo
-->
nuevo aquí
-->
tengo
-->
década
-->
tengo
-->
title
-->
y tengo
-->
popularidad
-->
suponte que
-->
tengas aquí
-->
mil novecientos
-->
noventa
-->
título x
-->
y popularidad
-->
por ejemplo
-->
ochenta
-->
tienes mil
-->
novecientos
-->
noventa también
-->
popularidad
-->
noventa y uno
-->
quizás
-->
tengas dos mil
-->
aquí
-->
popularidad
-->
ochenta y siete
-->
y
-->
tengas
-->
mil
-->
novecientos
-->
noventa
-->
popularidad
-->
y
-->
seta
-->
aquí
-->
noventa y dos
-->
al ordenar primero
-->
por década
-->
me quedarían los
-->
datos al final
-->
de esta
-->
manera
-->
me quedaría
-->
todas las
-->
décadas
-->
primero
-->
ordeno
-->
por década
-->
y después por
-->
popularidad
-->
descendentemente
-->
significa que
-->
el primer
-->
registro
-->
que va a
-->
tener es
-->
el
-->
la mayor
-->
popularidad
-->
que sería
-->
noventa y dos
-->
o sea me
-->
quedaría más o menos
-->
esto de esta
-->
manera
-->
noventa y dos
-->
después seguiría
-->
de esta
-->
manera
-->
noventa y uno
-->
después seguiría
-->
ochenta
-->
y después
-->
seguiría
-->
este
-->
dos mil que está aquí
-->
si me entiende cuál es la
-->
idea
-->
al final
-->
lo que quiero
-->
es que
-->
me quede
-->
en el primera
-->
fila de cada
-->
grupo
-->
me quede el que tenga
-->
la película que tenga
-->
mayor popularidad
-->
eso fue lo que hice
-->
listo
-->
esta es la idea
-->
que me va a quedar así
-->
ahora mire lo que voy
-->
a hacer
-->
voy aquí al
-->
T aggregated row
-->
y esto lo que hace
-->
es un group by
-->
hago la
-->
semejanza porque de
-->
pronto con el group by
-->
sale más fácil de
-->
entender
-->
en un group by
-->
tú tienes
-->
un select
-->
tienes un from
-->
y tienes un group by
-->
entonces
-->
esta parte
-->
de group by
-->
tienes acá
-->
group by como tal
-->
la función group by
-->
vamos a
-->
configurarlo entonces
-->
voy a
-->
hacer lo siguiente
-->
voy a agrupar
-->
por década
-->
o sea voy a
-->
hacer más o menos
-->
la sentencia de esta
-->
group by
-->
década
-->
cómo se hace esto
-->
con la
-->
con la
-->
con la herramienta
-->
vete la
-->
herramienta un momento
-->
vamos a configurar
-->
el T aggregated row
-->
y este
-->
agrupar
-->
por
-->
indica
-->
el group by
-->
entonces
-->
dale aquí
-->
más
-->
y date
-->
cuenta lo siguiente
-->
que aquí
-->
no me hace
-->
automáticamente
-->
el
-->
la
-->
circulación entonces
-->
vete aquí a
-->
editar esquema
-->
por favor
-->
y de editar
-->
esquema
-->
necesito
-->
lo siguiente
-->
necesito
-->
década
-->
necesito
-->
title
-->
y también
-->
necesito
-->
la propiedad
-->
los tres campos
-->
necesito
-->
le das
-->
ok por
-->
favor
-->
y ahora
-->
si te va a
-->
permitir
-->
definir
-->
dale aquí
-->
más
-->
y aquí
-->
tú eliges
-->
la columna
-->
aquí tienes
-->
la columna de entrada
-->
la columna de
-->
salida cómo quieres
-->
llamarla
-->
con respecto a la
-->
columna de
-->
entrada
-->
y ahora presta
-->
atención a lo siguiente
-->
esta función
-->
esta operación
-->
acá
-->
indicaría
-->
lo que vas a
-->
colocar la
-->
función de
-->
grupo en el
-->
SELEC
-->
recordará que
-->
las
-->
funciones de
-->
grupo que tú has
-->
manejado a
-->
nivel de SQL son
-->
con min
-->
max
-->
a promedio
-->
que es
-->
AVG
-->
se me
-->
escapa
-->
zoom
-->
etcétera
-->
entonces
-->
este señor
-->
viene con
-->
algunas en
-->
particular
-->
en primer
-->
lugar
-->
yo quiero
-->
sacar
-->
la máxima
-->
popularidad
-->
de la década
-->
o sea
-->
max
-->
popularidad
-->
si yo
-->
agrupo
-->
por década
-->
esta que está aquí por
-->
ejemplo
-->
este sería un
-->
grupo verdad
-->
1990
-->
si te das
-->
cuenta al sacar el
-->
máximo me da
-->
cuánto
-->
92 si vamos bien
-->
hasta ahí
-->
espero que me
-->
entienda un poquito
-->
la idea
-->
significa entonces
-->
lo siguiente ahora
-->
en que
-->
como columna
-->
de
-->
salida entonces
-->
voy aquí
-->
a cambiar esta
-->
columna
-->
y voy a
-->
definir que esta
-->
es popularidad
-->
de popularidad
-->
especifico la
-->
función de
-->
este grupo
-->
que yo quiero
-->
que en este caso
-->
va a ser el
-->
max
-->
y
-->
especifico
-->
esta es la
-->
columna el nombre
-->
la columna de
-->
salida
-->
y esta que
-->
salida
-->
la voy a mapear
-->
con la entrada
-->
que se llama popularidad
-->
ese ignore null
-->
que está ahí
-->
hay algo
-->
muy particular
-->
cuando
-->
las
-->
funciones
-->
son de
-->
suma
-->
y encuentra
-->
un nulo
-->
él sale
-->
error
-->
entonces
-->
tú dirás
-->
pero
-->
entonces
-->
si hay error
-->
mejor siempre
-->
coloca ignore null
-->
no necesariamente
-->
porque
-->
si tú colocas ignore null
-->
quizás
-->
no te puedes dar
-->
cuenta de un error
-->
de datos
-->
en que
-->
tú supones
-->
que esos datos
-->
no venga en
-->
nulos
-->
entonces si le das ignore null
-->
te viene un nulo
-->
y tú te das cuenta
-->
mejor dejar
-->
y que dispare
-->
el error
-->
y tú te das cuenta
-->
y puedes
-->
mandar
-->
de pronto
-->
esos
-->
calidad de datos
-->
y que te digan
-->
epa
-->
hubo un error
-->
eso de ese
-->
dato no puede
-->
estar nulo
-->
el joke
-->
mío no funcionó
-->
porque ese
-->
dato
-->
no tiene que estar
-->
nulo
-->
tienes que
-->
revisar
-->
entonces
-->
hay que
-->
estar muy
-->
pendiente
-->
en cómo
-->
lo vas a
-->
manejar
-->
yo diría
-->
que si tú sabes
-->
que
-->
siempre
-->
es no nulo
-->
mejor coloca
-->
déjalo así
-->
no que lo ignore
-->
de tal forma de que
-->
si hay un error
-->
te levantes el error
-->
y tú lo puedas
-->
corregir
-->
listo
-->
voy a hacer ahora
-->
lo siguiente
-->
voy a dar aquí
-->
un más
-->
y me aparece
-->
title
-->
y aquí en la
-->
función de
-->
grupo
-->
voy a
-->
usar algo
-->
que
-->
no aparece
-->
solamente
-->
hasta
-->
versión
-->
bueno eso nada más
-->
MySQL lo hace
-->
porque aquí
-->
hay un estándar
-->
de SQL
-->
que no lo permite
-->
pero este señor
-->
sí me permite
-->
hacer lo siguiente
-->
date cuenta
-->
que aquí
-->
hay una función
-->
que se llama
-->
first
-->
sácame
-->
el primer
-->
title
-->
first
-->
te explico ahora
-->
entonces
-->
que significa
-->
significa
-->
lo siguiente
-->
recordarás
-->
entonces
-->
en que
-->
si yo tengo
-->
una función
-->
de grupo a nivel
-->
de SQL
-->
yo no puedo
-->
colocar
-->
ninguna columna
-->
que no sea
-->
función de
-->
grupo
-->
me explico
-->
de esta manera
-->
si yo intento
-->
colocar en ese
-->
SQL este
-->
title
-->
que es lo que
-->
hace
-->
sale un error
-->
porque
-->
porque no es
-->
función de
-->
grupo
-->
y porque
-->
sale un
-->
error
-->
porque está
-->
diciendo
-->
si está
-->
buscando el
-->
máximo
-->
significa que
-->
el máximo
-->
es uno
-->
solo
-->
independiente
-->
que haya varios
-->
registros que
-->
tengan el máximo
-->
el máximo
-->
sigue siendo
-->
uno
-->
solo
-->
pero entonces
-->
si el
-->
grupo está
-->
formado
-->
por tres
-->
registros
-->
y solamente
-->
te puedo
-->
mostrar uno
-->
cual
-->
title
-->
quiere que
-->
te muestre
-->
entonces
-->
para evitar
-->
esa confusión
-->
SQL
-->
te manda
-->
un error
-->
cuando no
-->
colocas una
-->
función
-->
cuando la
-->
la coluna no está
-->
dentro de una
-->
función de
-->
grupo
-->
casos diferentes
-->
como MySQL
-->
que es un poco
-->
más rebelde
-->
con las
-->
estándares de
-->
SQL
-->
y MySQL
-->
no se complica
-->
la vida
-->
MySQL entonces
-->
tu puedes
-->
colocar este
-->
title
-->
y MySQL lo que
-->
hace es que
-->
a partir
-->
del grupo
-->
que tenga
-->
formado
-->
saco el primer
-->
fila
-->
ya yo sé que la
-->
primera fila
-->
va a correr
-->
como está ordenado
-->
de mayor a menor
-->
yo sé que la
-->
primera fila
-->
que está aquí
-->
va a corresponder
-->
al nombre de la
-->
película con la
-->
menor popularidad
-->
entonces
-->
lo resolví
-->
de esta manera
-->
para agregar
-->
el te short
-->
y el te
-->
aggregate row
-->
listo
-->
entonces
-->
aquí
-->
no hago
-->
más nada
-->
perfecto
-->
entonces
-->
antes de
-->
ejecutarlo
-->
te voy a
-->
explicar
-->
dónde es que
-->
entra el
-->
Big Data
-->
en el caso
-->
particular de la
-->
herramienta
-->
el procedimiento
-->
de Big Data
-->
lo está
-->
derivando
-->
en dos
-->
elementos
-->
o lo
-->
hace con
-->
MacReduce
-->
que prácticamente
-->
MacReduce
-->
quedó
-->
simplemente
-->
para
-->
aplicaciones
-->
relegadas
-->
a Hadoop
-->
decíamos
-->
ya funcionan
-->
con Hadoop
-->
para que
-->
MacReduce
-->
para que lo vas a
-->
cambiar
-->
te funciona
-->
perfectamente
-->
o lo
-->
utilizas
-->
Spark
-->
entonces
-->
la
-->
herramienta
-->
se deriva en esos
-->
dos
-->
o lo
-->
hace con
-->
MacReduce
-->
o lo
-->
hace con Spark
-->
cuando
-->
hace con
-->
MacReduce
-->
entonces
-->
que hace
-->
la herramienta
-->
como has
-->
usado
-->
una
-->
entrada que es
-->
HDFS
-->
la herramienta
-->
lo que va a hacer es lo siguiente
-->
todo lo que conecte
-->
después
-->
de aquí
-->
hacia adelante
-->
esto lo va a convertir
-->
en un código
-->
Java
-->
pero ese código Java
-->
lo va a
-->
convertir a
-->
MacReduce
-->
o sea
-->
MacReduce
-->
para distribuir
-->
toda esta parte
-->
sobre el cluster
-->
que tiene
-->
sobre Hadoop
-->
entonces ya tú no tienes que
-->
programar en
-->
MacReduce
-->
¿por qué?
-->
porque él sabe que a
-->
partir de esta entrada
-->
es lo que va a
-->
hacer entonces que
-->
todo este código
-->
lo va a convertir
-->
en MacReduce
-->
y lo va a
-->
ejecutar con
-->
Tcluster
-->
entonces ya te
-->
despreocupa
-->
si yo no tuviese
-->
esta entrada aquí
-->
si no yo hubiese
-->
leído el archivo
-->
con
-->
TfileInput
-->
de
-->
por ejemplo
-->
este
-->
TfileInput
-->
de Limite
-->
y lo conecto
-->
con este tema
-->
que está aquí
-->
ahí me puede dar
-->
el mismo resultado
-->
pero ya no estoy
-->
ejecutándolo con
-->
MacReduce
-->
entonces ahí es donde
-->
entra la herramienta
-->
con la
-->
Big Data
-->
ahora con el caso
-->
de Spark es
-->
mucho más sencillo
-->
porque Spark
-->
tú puedes
-->
no tener la
-->
entrada con
-->
HDFS
-->
sino con el TfileInput
-->
por ejemplo
-->
y aquí hay unos
-->
elementos de
-->
configuración
-->
que lo vas a
-->
encontrar acá
-->
bajito
-->
y tú le das
-->
chulea y se
-->
conviértame ese código
-->
a Spark
-->
entonces toma ese código
-->
y lo convierte
-->
Spark basado con Java
-->
y lo ejecuta
-->
con Tcluster de
-->
Spark que tengas tú
-->
ese es
-->
la ventaja
-->
de la herramienta
-->
entonces tú terminas
-->
al final
-->
usando una herramienta
-->
ETL
-->
que la herramienta
-->
toma ese ETL
-->
el código
-->
que al final
-->
lo convierte en Java
-->
y lo manda
-->
o a MacReduce
-->
o la manda a Spark
-->
dependiendo de tu configuración
-->
como la tengas
-->
ese es
-->
prácticamente
-->
el boon de la herramienta
-->
que te evita
-->
escribir el código
-->
en MacReduce
-->
o en Spark
-->
automáticamente lo hace
-->
listo entonces
-->
eso es
-->
la esencia
-->
de la herramienta
-->
a nivel de Big Data
-->
al final
-->
date cuenta que
-->
en resumida cuenta
-->
sería
-->
la misma herramienta
-->
ETL
-->
pero me ofrece
-->
la característica
-->
de convertir
-->
el código Java
-->
para que sea ejecutado
-->
con MacReduce
-->
o con una Spark
-->
esa es la esencia
-->
del Big Data
-->
sobre esta herramienta
-->
pues
-->
ahora que vamos a hacer
-->
entonces
-->
vamos a
-->
ejecutar
-->
este señor de aquí
-->
vamos a darle aquí
-->
verifica por favor
-->
en que
-->
el
-->
el yo que vayas a
-->
ejecutar
-->
corresponda
-->
al
-->
yo que deseas
-->
en este caso
-->
yo película
-->
más popular
-->
voy a
-->
ejecutar aquí
-->
bueno
-->
voy a
-->
ejecutar
-->
a ver qué
-->
sale
-->
el yo
-->
puede que sea
-->
lento
-->
pues
-->
no tengo
-->
gran
-->
cantidad
-->
porque
-->
la máquina
-->
virtual de Hyper-V
-->
tiene poca
-->
memoria
-->
pues
-->
en un ambiente
-->
real
-->
vas a tener un
-->
clúster
-->
con varios
-->
equipos
-->
o varias
-->
o varios
-->
o varios
-->
contenedores
-->
bueno aquí salió
-->
un error
-->
y fíjese que me
-->
dice que la
-->
popularidad que es
-->
nula
-->
lo que te
-->
había dicho
-->
entonces
-->
eh
-->
ah no
-->
aquí en realidad
-->
para cualquier
-->
función de
-->
grupo
-->
si hay un
-->
nul sale un
-->
error
-->
entonces
-->
qué pena
-->
aquí popularidad
-->
a sacar
-->
el máximo
-->
como una
-->
función numérica es el
-->
problema
-->
saca el máximo
-->
de ese integer
-->
dale
-->
ignore
-->
nulls por
-->
favor
-->
y vuelve a
-->
ejecutar
-->
nuevamente
-->
solamente
-->
para popularidad
-->
porque
-->
no creo
-->
que haya
-->
error porque
-->
no es
-->
ninguna función
-->
si efectivamente
-->
solamente con
-->
popularidad
-->
efectivamente
-->
y ahí te
-->
están
-->
mostrando
-->
entonces
-->
las
-->
películas
-->
con su
-->
aquí no
-->
se ve
-->
muy bien
-->
pero aquí
-->
tenemos
-->
las
-->
películas
-->
Brenda no sé si
-->
le quita
-->
ignore
-->
null
-->
y vuelve a
-->
ejecutar
-->
o
-->
voy a
-->
verificar
-->
para ver qué
-->
error tiene
-->
dice input string
-->
gear
-->
listo
-->
pareciese
-->
lo siguiente
-->
en que
-->
cuando
-->
intenta
-->
leer
-->
hay un
-->
dato
-->
entero
-->
voy a
-->
ver lo
-->
siguiente
-->
explico
-->
este
-->
error
-->
aquí dice
-->
input string
-->
gear
-->
aquí el
-->
problema
-->
es lo
-->
que
-->
este
-->
entero
-->
lo intenta
-->
convertir
-->
a numérico
-->
pero qué
-->
problema que
-->
tenga un
-->
gear
-->
ya
-->
intenta
-->
convertir
-->
a numérico
-->
sale un
-->
error
-->
cuál es el
-->
problema que
-->
tiene
-->
que está
-->
leyendo
-->
encabezado
-->
como
-->
datos
-->
váyase
-->
al input
-->
por favor
-->
dele doble
-->
al input
-->
hcf
-->
input si está
-->
amable
-->
y note que
-->
en el
-->
header
-->
tiene cero
-->
colóquelo
-->
uno
-->
al decirle
-->
uno
-->
que la
-->
primera
-->
la primera
-->
fila
-->
no la
-->
tome
-->
porque va a
-->
intentar
-->
leer
-->
un entero
-->
y le va a
-->
mandar
-->
gear
-->
intenta
-->
convertirlo
-->
sale un
-->
error
-->
vuelve a
-->
ejecutar
-->
nuevamente
-->
para ver
-->
perfecto
-->
ahí lo tiene
-->
perfecto
-->
ahí
-->
ahora si
-->
quisiésemos
-->
algo en
-->
particular de
-->
esto es
-->
base
-->
del señor
-->
Eclipse
-->
hay veces que
-->
tú quieres
-->
maximizar
-->
por ejemplo
-->
si le damos
-->
doble clic
-->
en una
-->
perspectiva
-->
en esta
-->
de room
-->
le damos doble
-->
clic
-->
dese cuenta
-->
que automáticamente
-->
me maximiza
-->
si
-->
quisiera
-->
colocarlo
-->
nuevamente
-->
en como
-->
estaba
-->
en la
-->
configuración
-->
de tu
-->
de tu
-->
talen
-->
le das
-->
nuevamente doble
-->
clic
-->
y te lo
-->
coloca
-->
en la
-->
posición en que
-->
estaba
-->
la
-->
herramienta
-->
como lo
-->
hayas
-->
definido
-->
hagamos
-->
algo aquí
-->
vamos a
-->
si deseas
-->
vamos a
-->
ordenar
-->
los los
-->
datos
-->
bueno no tiene sentido
-->
vamos a hacer
-->
lo siguiente ahora
-->
vamos a crear
-->
un nuevo
-->
componente
-->
aquí
-->
como ya yo sé que
-->
me
-->
funciona
-->
voy a hacer
-->
lo siguiente
-->
voy a quitar
-->
este
-->
telocrow
-->
bueno
-->
si quieren
-->
lo dejan
-->
también
-->
vamos
-->
aclaro
-->
bueno
-->
la
-->
pregunta
-->
que me
-->
hicieron
-->
ayer
-->
en
-->
cuá
-->
los
-->
datos
-->
tal cosa
-->
lo que
-->
pasa
-->
es que
-->
si
-->
tienen
-->
muchos
-->
datos
-->
mandar
-->
esto
-->
a
-->
consola
-->
te
-->
consume
-->
mucho
-->
tiempo
-->
y el
-->
joke
-->
te va a
-->
demorar
-->
mucho
-->
si
-->
output
-->
significa
-->
a
-->
escribir
-->
en el
-->
sistema de
-->
fichero
-->
del
-->
señor
-->
si esto tiene
-->
un
-->
que tiene
-->
que tener
-->
un esquema
-->
un esquema
-->
con el cual va a
-->
crear
-->
archivo
-->
pero
-->
cuando
-->
conecto
-->
este
-->
telog
-->
con el
-->
telop
-->
automáticamente la salida del Tegar Gate se convierte en entrada en el T, en el T HDFCU.
-->
Bueno, el T-Log no, pero sí podías hacer lo siguiente. Voy a dejarlo como estaba
-->
anteriormente y se lo voy a dejar. Usted hágalo con allá con un, sin el T-Log.
-->
Aquí pude de hecho varias cosas. Si quisieses por ejemplo tener ese T-File en un archivo,
-->
podías aquí cambiar este T-Log por un T-File Output. O si quisieses dejar todavía la
-->
salida, yo pude haber hecho este T HDFCU Output aquí y conecto el T-Log Road con este HDFCU.
-->
¿Qué va a pasar aquí? Que aquí me va a mostrar lo que pasa por aquí y al final lo que pasa
-->
por aquí lo va a mandar acá. Hay varias formas de hacerlo. Al final lo que quiero es que la
-->
salida de aquí me quede en un archivo allá en el clóset dejado. Pero es viable también
-->
este esquema en que dejo este intermedio aquí. Podías dejarlo porque normalmente en
-->
T-Log Road cuando tenemos datos reales, datos de pruebas, y podíamos aquí dejar ese T-Log ahí,
-->
bien funcionaría igual sin o con el T-Log Road. Voy a configurar ahora entonces este Output que está acá.
-->
Lo que les decía como... Sí, dígame. A ver, aquí hay varias cosas.
-->
Bueno, en primer lugar, si el T-Log Road no lo tengo, no tendría un archivo de logs.
-->
En primer lugar. Ahora, hay varios componentes en talent que te pueden mandar. Por ejemplo,
-->
hay un componente que se llama un T-Warning. Este T-Warning que está aquí te manda algunos
-->
warning que tú quieres. Pero el problema donde tú quieres llegar es si el T-Log Road no lo tengo,
-->
¿cómo podría detectar un issue? Aquí... Sí, sí. Ah, sí, listo. Pero ese mensaje tendría que
-->
sacarlo con un componente que es T-Log Catcher. Este T-Log Catcher, sin este T-Log Road,
-->
yo tengo este T-Log Catcher y este T-Log Catcher lo podía mandar a un T-File,
-->
o sea, a un archivo de log físico, de memoria secundaria. Mira lo siguiente,
-->
la idea sería de esta manera. Sin este T-Log Road, podía quitar el T-Log Road y colocar un
-->
T-Log Catcher. Si hay un error aquí en el job, él lo manda al T-Log Catcher,
-->
pero el T-Log Catcher me queda de memoria principal. Entonces, lo que haría es que el
-->
T-Log Catcher lo mandaría a un archivo de log. Perdón, aquí es un T-File Output.
-->
Y tendría mis archivos de log normal de estos jobs. Si me entiendes la idea y si quieres
-->
que esté muerto, te invento un ejemplo más tarde. Pero la idea sería la menor. Sin el T-Log Road,
-->
el T-Log Catcher captura cualquier error que haya aquí y para mantener la memoria
-->
secundaria lo manda a un T-File Output. Si de pronto la idea se dice...
-->
Sí, exactamente, exactamente. Sí señor, así es, efectivamente. Tiene que quedar un T-Log Catcher.
-->
Ah, listo. La única es que el T-Log Road lo manda a consola. Listo. Y el T-Log Catcher,
-->
el T-Log Road mandaría que ella escribiría aquí, pero si hay un error detrás, el T-Log
-->
no lo captura. Entonces, el T-Log Catcher sí captura cualquier error que haya en el flujo y
-->
te guarda el error, en qué posición estaba, y con el T-File lo guardas en un log de memoria
-->
secundaria. Y ahí mantiene tu log listo. Vamos entonces aquí a este THDF Output entonces para
-->
configurarlo. Como les decía, ya yo sabía que usar dos componentes de THDFS, la mejor forma
-->
era con un Conectium. Entonces aquí uso la conexión existente. Nombre del archivo. Si deseas
-->
para que no coloques la ruta, hacemos el fluquito del día de ayer. Voy a buscar un
-->
archivo que esté, voy a coger un archivo que esté en la ubicación que yo quiera, por ejemplo,
-->
aquí, y después le cambio el nombre. En este caso lo voy a llamar Mejores Undercore Películas
-->
por Década. Es para evitar colocar toda la ruta, entonces tomo un archivo que está ahí,
-->
y después le cambio el nombre para que sea mucho más sencillo. Perfecto, entonces aquí le
-->
coloco TextFile, el circuit si todavía no lo he explicado. La acción, si vas a ejecutar varias
-->
veces este yo, mejor coloca Sobreescribir. El añadir lo que hace que cada vez que ejecute le
-->
vaya a ir más datos al archivo como tal, pero en este caso desea solamente Sobreescribir.
-->
El Sobreescribir si no está creado lo crea, y si está creado lo sobreescribe entonces.
-->
Al nombre del archivo, ah, ok, sí. Para ese caso en particular,
-->
déjenme decirle, bueno, pero le adelanto un poco porque si acaso no me da tiempo de
-->
hacerle un ejemplo con eso, pero entonces la herramienta maneja lo que llaman
-->
variables globales. Entonces aquí hay una variable que se llama, por ejemplo, aquí hay
-->
un test global bar, este señor me permite crear variables globales, entonces imagínate un programa
-->
que tú define la variable que sea aquí, la voy a colocar aquí, nombreArchivo, nombreArchivo.
-->
Listo, entonces aquí defino la variable. Podría usar un componente que se llama
-->
Tjava que monte primero, y aquí por si algo le digo a la variable que llamé nombreArchivo,
-->
le puedo colocar aquí un nombre que se genere a través de, tome la fecha del día y define
-->
el nombre. Y lo que hago acá es que en vez de mandarle a colocar aquí el nombre,
-->
hago una concatenación con la variable global. Sé que lo dije muy rápidamente,
-->
pero voy a intentar entonces hacer un ejemplo con este para ver si salen, pero sería la forma en
-->
que haría dinámico el nombre. Defino una variable, la variable le cambia el valor cada vez que
-->
ejecute y listo, perfectamente puedo concatenar con el nuevo valor y me da. Listo, es que es
-->
muy este, normalmente aquí ya llevábamos toda la teoría, cuando estaba este curso antes
-->
teníamos toda la teoría ya está básica del talent y ya tú sabías cómo resolver estos
-->
problemas que me estabas preguntando. Pero bueno, vamos a ver, vamos a intentar ejecutar aquí este
-->
señor de acá, listo run acá, debería ahora hacer lo siguiente, debería generar, como tengo
-->
el telorode por la mitad, me va a mostrar los datos que pasan por ahí y al final me
-->
debería mandar el archivo al clóser de Hadoop. Dice que aquí no hubo problema, entonces voy
-->
a revisar acá el clóser de Hadoop, tengo esta, un momento a ver qué, ahora sí, bueno aquí
-->
tengo el clóser de Hadoop y aquí está, bueno no estaba, F5, ya tengo mejores películas por
-->
década, voy a bajar aquí y voy a descarguelo aquí mismo por favor desde la interfaz y
-->
veamos cómo nos quedó el archivo, el archivo me quedó sin encabezados, se me
-->
dejó colocar los encabezados. Sí, se nos olvidó configurar ese encabezado, entonces
-->
voy aquí, que raro porque me está dando eso acá, voy aquí a este señor acá y le
-->
digo incluir header en la parte de abajo, incluir header, se va al output, por favor a
-->
confusión del output y en la última opción hay un chulito que dice incluir header acá,
-->
incluir header acá en la parte de abajo ya, bajito y lo vuelvo a ejecutar nuevamente y
-->
debería agregar los encabezados. Vamos a ver entonces, debería de este lado.
-->
¿Quién me habló? Sí, normalmente cuando se cambia o quiero volver al mismo lugar le da
-->
nuevamente doble clic, pero ahora tiene algo, lo que hace es que le cambió, lo que estaba acá
-->
abajo en la confusión que tiene acá abajo, la tiene ahora del lado izquierdo porque le
-->
cambió la forma de perspectiva. Haga lo siguiente ahora, ok, dígale lo que hay ahí,
-->
note en la parte, no sé si me voy a mostrar su pantalla aquí, mire que de este lado es que
-->
tiene ahora la configuración que tenía acá, entonces si da clic aquí, por ejemplo, dele
-->
clic aquí a donde está como la paleta esa, dele clic ahí, espere que ahora, dele doble
-->
clic a eso y debería colocársela abajo, dele aquí donde dice component, doble clic,
-->
nuevamente doble clic y ahí va armando nuevamente. Ahora, ese run, dele doble clic nuevamente
-->
y ahora doble clic nuevamente ahí en la parte de arriba, espere un momento,
-->
hay que cerrar ese, se nos cambió la forma. Listo, perfecto, sí, así es. Intente ejecutar
-->
ahora nuevamente, ya creo que ya ejecutó, no sé si ya había ejecutado, creo que le cambió
-->
alguna configuración. Váyase al basic, ahí en la parte de abajo está en memory run,
-->
váyase en basic run porque ahí está haciendo es, váyase aquí, memory run, suba a la
-->
primera opción que es basic run para si vuelve a ejecutar ahí porque ahí está haciendo era
-->
un análisis de memory ahí. No sé, Fernanda, en el caso suyo salió un error allá, suba para ver,
-->
suba para ver ahí en donde está el run, suba a la barra de, a ver qué error puede salir ahí,
-->
suba y suba, está al principio, normalmente sale en el principio. Ahí está, la segunda
-->
línea dice que ya existe. Sí, exactamente, porque ya existe, dele doble clic al output,
-->
por favor, listo, perdón, dele ejecutar ahora, listo, perfecto, entonces continuamos,
-->
a ver si me da tiempo de hacer un ejemplito con alguna IA y podamos relacionar el job con IA.
-->
Bueno, vamos a crear otro ejercicio aquí entonces, ya cerramos este de aquí,
-->
vamos y vamos a crear aquí create job, un nuevo job, vamos a hacer lo siguiente,
-->
job, lo vamos a llamar job, calcular, producción,
-->
por estado, temporada, es decir, vamos a hacer entonces a sacar los datos de
-->
cuánto es la producción por estado y por temporada. Vamos a ver aquí finish,
-->
vamos, que venga, vamos a abrir el anterior para tomar la configuración de conexión,
-->
este vamos a tener, listo, esto que es aquí, vamos a copiar
-->
y vamos a pegarlo acá, para no tener que volver a configurar eso.
-->
Listo, voy a cerrar esto que ya no me interesa este lado.
-->
Vamos entonces a hacer lo siguiente ahora, vamos a tener un HDFS input,
-->
HDFS input, vamos a tener ahora un THDFS output,
-->
vamos a tener un T-aggregator row nuevamente,
-->
agregue otro THDFS input si es tan amable,
-->
input
-->
y esto es para ejemplificar aquí, coloque un THDFS row.
-->
Bueno, listo, entonces este es el archivo que vamos a manejar, nos piden, esto lo que hace es que
-->
tiene el valor de la por estado, por distrito, por año, por temporada, cuánto se ha cultivado
-->
y cuándo fue la producción, cuánto, digamos, cuánto tomé de la cosecha que tuvo,
-->
y vamos a hacer lo siguiente ahora. En primer lugar, voy a tomar del HD,
-->
que lo hicimos el día de ayer, tomamos y creamos, subimos el archivo que se llama
-->
producción, entonces vamos a hacer lo siguiente, este HDFS input que está aquí,
-->
voy a decirle usar conexión existente,
-->
defino la conexión aquí, y ahora voy a tomar como referencia el archivo que se llama producción.csv,
-->
perfecto, producción, ahora necesito el esquema de producción,
-->
necesito el esquema, que es la recomendación que te hago yo cuando tienes varios archivos,
-->
tiene muchas columnas, carece de sentido que lo haga de forma manual, entonces créate,
-->
en una porción de ese archivo muy pequeño y vamos a crear una metadata de ese archivo,
-->
vamos entonces aquí a decirle file delimited, clic derecho y crear file delimited,
-->
esto lo estoy haciendo simplemente para tomar las columnas y el orden y los tipos de
-->
datos en que están, lo voy a llamar producción, en español producción, next aquí,
-->
busca tu carpeta temporal y ahí vas a encontrar el archivito de producción,
-->
en un ambiente real pues no vas a tener archivo completo, vas a tener solamente las columnas,
-->
nada más abrir, next, está separado por coma y el día de ayer te comenté acerca de la
-->
codificación, normalmente pues con un UTF-8 te debe bastar pero en algunos casos, en español
-->
el Windows 15-52 te puede servir mucho mejor, le digo que tiene encabezado y que está separado
-->
por coma y después le doy refresh para ver que todo esté bien, listo y aquí lo que quiero
-->
sacar es cuánto he hecho por producción, por estado y por temporada, sé cuánto he producido,
-->
por estado y por temporada, es lo que quiero, dale aquí next y el día de ayer lo hicimos
-->
un poco diferente, vamos a exportar automáticamente este señor, en la penúltimo botón, vamos a
-->
exportarlo directamente el esquema, en el penúltimo botón de esta ventana, le das click ahí y va
-->
a exportar el esquema, si dígame, el que perdón, el name de la producción, producción,
-->
será producción list y aquí vamos a llamarlo entonces producción.xml, esto fue lo que hicimos
-->
el día de ayer, la diferencia es que el día de ayer lo hicimos ya cuando estaba creado,
-->
este es cuando lo está terminando de crear, entonces me lleva listo a guardar y le doy
-->
finish aquí, si digo, Beatriz voy a ir para ver, primero ya creo el archivo delimitado,
-->
no, vamos a ver, dele click derecho ahí en donde está en la metadata, justamente en
-->
click derecho, a un momento, a qué pena, que me equivoco, que fue de pantalla, listo,
-->
ahí está en el penúltimo botón, dele next por favor, dele next, y ahora en el penúltimo
-->
botón de esta ventana, listo, vamos a hacer lo mismo que hicimos el día de ayer, coloque
-->
ahí entonces producción y asegúrse de terminar con xml, dele guardar ahí, finish por favor y
-->
listo, vamos por ahí, ahora vamos a tomar ese esquema que está ahí, vamos nuevamente a hfs
-->
input, que asegúrese donde dice editar esquema, que en este caso está en la parte de arriba y
-->
en el penúltimo botón es para importar, busque entonces aquí producción, vamos a darle
-->
aquí ok y ya tuvo que haber importado entonces el esquema exactamente con los nombres de
-->
que para el caso de talent pues es irrelevante, lo más importante es el orden y el tipo de datos
-->
de cómo vas a sacar las columnas, si quiere le puede cambiar el nombre, pero bueno, normalmente
-->
uno a nivel de producción deja los mismos nombres, acto seguido vamos entonces a conectar
-->
aquí con el t-aggregated y el t-aggregated row lo conectamos con el hdfs output,
-->
listo entonces repasemos este componente que es muy usado a nivel de cuando voy a sacar algunos
-->
cálculos porque recordará que cuando yo voy a analizar algo analizo en conjunto para ver la
-->
frecuencia que puede tener los datos, entonces vamos al t-aggregated row y vamos entonces
-->
donde dice editar esquema, en el caso anterior utilicé los mismos nombres de columna que me
-->
tenían de aquí de entrada, voy a hacerlo un poco diferente, si los nombres de entrada tú
-->
lo quieres conservar pues lo más lógico es que tomes de aquí para evitar para hacer más rápido
-->
y lo mandes para este lado como fue el caso de ayer, el caso del proceso pasado, voy a crear
-->
ahora unas nuevas variables que son las que voy a sacar, entonces las voy a colocar en
-->
español ahora, aquí tengo un más y este más lo voy a llamar entonces aquí me agregó una
-->
nueva fila, voy a darle clic ahí donde dice new column y la voy a llamar estado en español,
-->
tipo de dato stream, por qué lo hice diferente la vez pasada es porque muchas veces vas a
-->
quisiera conservar los mismos nombres entonces era más rápido que pasar los nombres que tenía
-->
y los tipos de datos, aquí lo voy a hacer un poco diferente por si acaso te toca hacerlo
-->
de esta manera alguna vez, estado voy a colocar aquí, voy a agregar una nueva columna
-->
que la voy a llamar temporada, que también es temporada y voy a agregar entonces
-->
una nueva columna, la voy a llamar estilo snake case total underscore producción
-->
y aquí es donde va a quedar la sumatoria de esa producción, entonces como voy a sumar
-->
datos que son numéricos, el tipo de datos no podía ser string entonces, entonces voy a
-->
expandir aquí y voy a escoger el tipo de datos más conveniente, para este caso entonces
-->
aquí tiene, java tiene estos tipos de datos son directamente de java, entonces aquí tiene
-->
lo siguiente, si sus datos son de tipo enteros entonces java tiene integer y tiene long,
-->
integer le ocupa menos cantidad que long, el long si es un dato mucho más grande y de igual
-->
forma tengo, para reales tengo flowat que es para reales y tengo doble, si el doble, si el número
-->
es muy grande entonces usa el doble, si no, usa flowat, si no cabe en un doble, java tiene un
-->
tipo de datos especiales que se llama big decimal que ahí aparece, que lo que hace internamente
-->
es que maneja el dato como si fuese un string, o sea hace unos cálculos matemáticos pero lo
-->
guarda al final como si fuese un string, pero no es el caso la cantidad de datos no me da
-->
para big decimal entonces use por favor doble. Este icono que está aquí, perdón este chulito que
-->
está ahí en el medio que se llama clave, perdón, esto es, esta clave se usa cuando
-->
ejemplifico, son muchas cosas que de pronto estoy metiendo la cabeza, esa clave que está ahí se usa
-->
es, supongamos que tú quisieses mandar esos datos en una tabla a la base de datos, entonces
-->
yo coloco una clave, me manda ese dato como si fuera ya de primaria, me colocó un primaria
-->
aquí a ese campo, pero no es el caso, te estoy informando y acá recuerde que este nullable es
-->
el mismo chulito que hicimos con el caso de la variable en el tema que si iba a recibir nulo
-->
la chuleabas, si sabes que no va a recibir nulo entonces pues no la chuleas, no quiero
-->
la chuleabas y ahora voy a agrupar entonces como quiero que es sacar por estado y por temporada
-->
me toca hacer en el group by, me tengo que agrupar entonces primero por estado y después por
-->
temporada, recuerda que el orden en que agrupes te va a dar diferente entonces primero voy a
-->
agrupar por estado, voy a darle aquí clic y aquí me dice estado y acá tienes que mapearlo
-->
con la columna de entrada que sería state name, perfecto ahí mapeo bien, agrega ahora una nueva
-->
columna temporada y mapearlo con la columna temporada de entrada que sería season, listo
-->
no vamos a seguir agrupando, vamos a definir entonces una función de grupo, vamos a darle
-->
entonces aquí en el más y aquí me va a aparecer las las columnas que todavía están
-->
libres ya yo había usado temporada y estado y nada más tenía producción entonces función aquí
-->
la función sería suma y que columna vas a sumar entonces spande y hay una columna que
-->
se llama producción y el error que vimos pues normalmente cuando es matemático si
-->
hay algún nulo entonces voy aquí ignore null para que me funcione pero recuerda que como
-->
recomendación si tú sabes que no debe haber nulo no debes colocar ese ignore de tal forma
-->
que salga un error si de pronto viene un nulo. Configuramos el HDFS output digo usar conexión
-->
existente y ahora voy a hacer lo siguiente entonces voy a escribir nombre archivo mismo
-->
truco que apliqué ahora voy a buscar un nombre archivo que esté en la carpeta donde yo quiero
-->
perdón aquí no especificé la conexión aquí en el combo voz amplió aquí y escojo aquí
-->
bueno cualquier archivo que al final lo voy a cambiar el nombre y lo voy a llamar entonces
-->
producción on the record por on the record temporada perdón por estado on the record
-->
temporada. Aquí un par de recomendaciones
-->
el problema de las codificaciones ya habíamos visto en el Tefalinput que hay varias
-->
codificaciones ASCII, ISO, la ISO, la ANSI entonces te voy a recomendar en que los JOTS ya adopte
-->
su sistema de codificación el que tú ya has definido por estándar normalmente casa como UTF-8
-->
por ejemplo aquí sitúa codificación personalizada por defecto está en ISO,
-->
ese ISO es inglés si los datos tienen español y le mandas para ISO allá cuando los vayas
-->
a leer baja tiene un pequeño problema entonces normalmente acostumbra pues a usar
-->
estándar que tú ya definido UTF-8 no sé el que hayas definido pero si los datos en español
-->
mejor que se casen con un estándar de UTF-8 si de pronto es europeo el ISO le funciona
-->
perfectamente eso lo quería mencionar aquí y lo último aquí es esa parte de compresión
-->
de datos pasa lo siguiente en que recordará que por la forma de clostrización que se tiene
-->
que está en este caso de JADUT JADUT lo que tiene es lo siguiente toma un archivo y lo
-->
divide en diferentes partes o particiones pero esas particiones la réplica por una cuestión
-->
netamente de redundancia por si acaso se daña alguna particiones por ejemplo si notamos aquí
-->
esta partición de JADUT acá nota que aquí tengo una replicación de 3 significa que este
-->
señor va a replicar tres veces la misma partición eso te va a ampliar a digamos en
-->
en gran medida el almacenamiento que vas a ocupar en memoria secundaria la ventaja que tienes con
-->
esto es que la memoria secundaria es muy barata a nivel de clau pero quizás hay archivos que
-->
son muy grandes entonces la herramienta te permite hacer lo siguiente te permite comprimir
-->
los datos entonces de aquí una compresión de datos y aquí están varios formatos de
-->
compresión estos formatos de compresión vienen directamente del mundo de UNIX aquí está
-->
si y vamos a quedar aquí incluir hider incluir listo ahora vamos a hacer lo siguiente quiero
-->
ahora leer este archivo porque lo quiero leer es porque cuando está comprimido tienes que leerlo
-->
tienes que especificar que está comprimido aquí me adelanté un poco a usar este como yo
-->
perdón no me adelanté que pena no me olvide lo último que di no me adelanté entonces
-->
qué vamos a hacer ahora este hdf input va a leer este archivo que voy a escribir acá
-->
entonces que voy a hacer estando en el hdfs up voy a copiar la ruta del archivo el
-->
nombre del archivo la voy a copiar y la voy a pegar en hdfs input aquí voy a configurar
-->
que voy a usar una conexión existente configuro la conexión y voy a pegar aquí el nombre del
-->
archivo de salida que tengo en el hdfs listo ahora que voy a hacer recuerde que todo lo
-->
input y output que tenga tiene que tener un esquema el esquema de entrada tiene que ser
-->
el mismo esquema de salida de este archivo que está aquí por ende ya yo sé que este
-->
hasta acá voy a este a este output le digo editar esquema y voy a exportar el esquema
-->
este que estado que está aquí donde está este sería la antepenúltima opción aquí la
-->
antepenúltimo botón perdón antepenúltimo botón y lo voy a llamar entonces producción
-->
temporada producción
-->
temporada punto xml te doy aquí guardar
-->
cierro aquí con ok y lo que hago ahora me voy al input al esquema del input y aquí si es
-->
el penúltimo botón y busco entonces el archivo del esquema que exporte abrir y
-->
debería dar entonces listo aquí damos ok
-->
y por último conecto el input
-->
con este teloro ah listo sí perfecto y lleva hider pero el momento en el input listo
-->
estoy no con si si gracias entonces en el input tengo que hacer aquí tendría que tener
-->
un hider la codificación tendría que ser la misma que sería utf-8 y necesariamente tendría
-->
que descomprimir los datos porque vienen comprimido la descomprensión tendría que
-->
estar en el mismo algoritmo que colocarte el op vamos ya lo exportó o todavía falta
-->
importarlo había por dónde va bueno bien vamos primero a exportarlo primero nos vamos
-->
al hdfs output le da en editar el esquema este esquema de salida para exportarlo va a ser
-->
el tercer bot el atp no último botón que dice export all y aquí lo exporta llamélo
-->
producción temporada y aseguré que sea punto xml si están a mal dele ok perfectamente ahora
-->
se va al input al hfs input y edita el esquema del hdf input perfecto editar esquema y ahora
-->
importa que sería el botoncito el penúltimo botoncito penúltimo botón y busca el archivo
-->
que ya había exportado listo header en uno la codificación tiene que ser igual a la del output
-->
si la codificación del hfs output está en utf-8 como el caso mío que la cambie aquí en utf-8
-->
la el input también tendría que estar en utf-8 si no la configuró no hay ningún problema porque
-->
la bala por defecto que sería la hizo y por último como este archivo lo comprimió tiene
-->
que descomprimirlo en el mismo algoritmo de ese cuenta que en el output yo comprimí con
-->
jett con jesset y acá voy a descomprimir con jesset bien cuánto su job habría en ese trabajo
-->
que está ahí a ver si no acordamos ahí cuánto su yo que habrían ahí habrían tres verdad el
-->
tepe yo el segundo su job y el tercer su yo aquí por defecto aquí me funcionaría bien en el caso
-->
particular por qué porque no tiene que darse ese y después este pero como buena práctica y quizá
-->
porque se te puede olvidar a ti mejor define el orden jerárquico si hay una jerarquía define
-->
la jerarquía de los su job entonces recordamos cómo hacíamos esto vamos al primer su job a
-->
elemento del su job 1 y voy a conectarlo con el disparador con su job ok hacia el primer
-->
componente del su job aunque la ejecución da igual este este yo que se puede leer más
-->
fácilmente porque sé que se ejecuta primero y después que se ejecuta después listo entonces
-->
voy a hacer aquí voy a ejecutar aquí verifiquen el ron que sea igual al que está ejecutando
-->
y vamos a ejecutar este señor
-->
aquí me sale un error dice no puede ser progresado porque incompatible o
-->
no sé no es raro extrañamente raro
-->
bueno ahí está los datos en que salió un warning ahí pero no sé por qué se lo
-->
hace warning ahí está entonces por ejemplo voy a sacar solamente dos dáticos aquí nada más
-->
para verlos aquí lo que veo raro es que no me lo está formateando bien parece ser que no
-->
lo está formateando bien el separador de campo acá es punto y coma y el separador
-->
es punto y coma no sé parece que no está como que
-->
hay algunos que tienen errores voy a verificar entonces aquí luis está preguntando algo para ver
-->
en el esquema el campo producción viene definido como stream a ok bien stream porque
-->
bien stream entiendo
-->
ah claro aquí está como es trin lo tomó mal y por eso que sale error
-->
bueno si quieres vamos aquí voy a cambiar el problema que tiene déjame un momentico ahí
-->
y solución aquí los demás porque yo te entendí la idea muchas gracias no me da cuenta
-->
voy a voy voy en el caso de luis que tiene a listo luis a ti salió error entonces vamos a
-->
ver el error te salió en el no porque ese input que está ejecutando luis
-->
el de abajo es el vete a tu hdf o por un momento luis hdf o por un momento
-->
ya está sube eso coloca lo más porque si no perfecto ese que está ahí
-->
es que está ejecutando al revés luis yo está buscando la chido que yo está creado
-->
borra el subyop borra el pt perdón borra la flecha del onsujok ok
-->
que están a mal de onsujok ok borrala ahora vete y dale clic derecho al input el de abajo
-->
y ahora sí dale clic derecho disparador porque se se ejecuta primero onsujok ok con el de
-->
arriba y porque estaba buscando el archivo que tuvimos está creado ejecuta ahora sí para ver
-->
y ahí está total producción porque ahora le cambiamos el tipo de datos para solucionar
-->
el problema perfecto liso el problema que tenías era el que tenías al revés el quién más perfecto
-->
vamos a solucionar el problema este del del warning que me sale este warning ojo lo
-->
siguiente y sería interesante bueno interesante que haya pasado esto el problema que tengo es
-->
que en el te agregué este robo todo haciendo una suma de un dato que es entero entonces
-->
mira lo siguiente yo pude haber cambiado el tipo de datos aquí en el te agregué este row de
-->
a doble el problema que tengo es que el señor viene string y va a intentar convertir el string
-->
a doble y va a tener un error entonces aquí lo mejor es convertirlo desde el inicio vete acá
-->
al hfs este este output editar esquema y conviértelo a doble que creo que sé por qué lo hizo
-->
conviértelo un momento a doble este señor se me perdió el doble aquí está doble
-->
entre pasa lo siguiente que muchas veces yo con cambio aquí al inicio y los elementos que
-->
siguen a continuación no los cambia entonces hay que verificar que el doble siga en el
-->
siguiente componente voy aquí al te agregué terro voy aquí a editar esquema y si si lo
-->
cambió si lo cambió lo cambié al inicio y cambió la cadena hay veces que no lo hace ahora
-->
vamos a ejecutarlo para ver si no sale error porque quizás salga un pequeñito error
-->
listo aquí el error fue porque no coloqué para que sólo escribiera entonces voy a dar
-->
aquí over white brenda tiene un error ahí ya voy a ver para ver qué tiene cuál error que tiene
-->
ya un momento para ver bueno perfecto ahí salió listo perfecto ningún problema ok ese
-->
era el warning que teníamos muchas gracias luis aquí no es necesario que lo cambies en
-->
el input 2 el porque el input 2 te quedó como te quedó como string a no no perdón no qué pena
-->
confusión bien quién era brenda que tiene error muestrame el room dale click en el room brenda
-->
por favor si está mal para ver qué error tiene dice todo no puede ser progresada diva
-->
entonces después nombre a total producción a listo bs al hfc input por favor al 2 al 2
-->
exactamente 6 de doble clic si está mal ahí fue porque no lo colocó encabezado entonces
-->
intenta leer intenta convertir un string a entero y no la elegir tiene que estar en uno corrida
-->
inmediatamente váyase al che al hfc output al 1 por favor si están amables al esquema del 1
-->
al hfs el 1 gracias al perdón al input que pena al input hfs input 1 no así si tiene
-->
colocarle 1 también 1 porque tiene encabezado váyase a editar esquema un momento de ese
-->
ahí editar esquema ahí cambie production el tipo de datos que está en string cambia
-->
los dobles si están amables el último ahí entre dele ahí lo tomó dele que yes ejecute
-->
ahora para ver nuevamente ya se alte al hf output y cambie de crear a overwrite doble
-->
clic ahí y cambie action el action de crear a sobre escribir y vuelve a ejecutar nuevamente
-->
perfecto ahora sí listo ok listo si va a la a su cluster de hadut f5
-->
que sería este punto csv ya la como en es más la extensión carece de sentido porque ya
-->
pierdo el formato de más si yo lo descargo aquí creo que me debe salir como un formato
-->
binario algo así por el estilo ahí está porque está está comprimido
-->
cuánto pesa el archivo a ver 3 3 puntos megas permítame y hago aquí una
-->
una pequeña observación voy a ejecutarlo sin no la guste simplemente para verlo acá
-->
no lo voy a comprimir
-->
y voy a ver cuánto pesaría para comprar los dos voy a cambiar aquí el nombre para ver más
-->
o menos cuánto aunque el archivo muy pequeño entonces quizás no se ve tan claro porque
-->
muy pequeño archivo listo ahí está ejecutando perfecto f5 vea el original pesa sin comprimir
-->
14 megas y comprimido da 3 megas y comprimir bastante comprimir bastante bueno continuamos
-->
con otro ejemplo y vamos a hacer un join ahora como hacemos un join acá entonces perfecto listo
-->
voy a sacar lo siguiente mire tengo los datos esto de esta manera voy a tomar aquí estado
-->
bueno listo voy a sacar nada más estos tres campos aquí que sería crochet listo y producción
-->
quiero sacar la mayor producción por año entonces primero me tocaría sumar todas
-->
las producciones que haya en ese año y después saco la mayor que tenga desde cuenta que el
-->
mayor que como lo hice anteriormente creo que lo tenía por aquí no sé este que está aquí
-->
este esta forma que hice yo era para introducir el texor no me funcionaría en todos los casos
-->
porque puede hacer el caso en que haya dos películas para este caso muy particular que
-->
tenga la mayor popularidad por ejemplo yo puedo tener aquí x con propiedades 92 aquí en realidad
-->
que el dato me tenía que dar 2 pero como yo estoy sacando solamente el primero nada más me
-->
mostraría este que está aquí entonces realidad esa consulta o ese yo de la forma
-->
en que lo tengo puede que me cause algunos problemas porque quizás haya varios películas
-->
que tengan la mayor popularidad por ende voy a hacer entonces el ejercicio de forma diferente
-->
esto entonces voy a hacer lo siguiente voy a sacar ahora la mayor producción que hay por año
-->
listo esto este solo voy a hacer es para incluir cómo se haría un join entre varios
-->
archivos para esto entonces vamos a irnos nuevamente al talent
-->
y vamos entonces a crear aquí en el big data que está acá
-->
clic derecho y voy a crear un nuevo yo
-->
este yo que lo voy a crear entonces yo lo voy a llamar calcular mayor
-->
under score producción por año coloque por anualidad porque no le va a aceptar el
-->
año entonces colócale por anualidad yo calcular mayor producción por anualidad
-->
como le decía voy a tratar de hacer los archivos de forma diferente cada
-->
yo para poder incluir componentes nuevos le damos aquí entonces finish
-->
y cópiese del anterior las conexiones por favor
-->
creo los siguientes elementos agregué un hdfs es más como es el mismo archivo por favor
-->
en el pasado cópiese el input de producción y fue el primer thdfs input entonces voy a la
-->
anterior al estado temporada que me sirve cuando tengo que volver a configurar eso
-->
voy a tomar el hdfs el input 1 que es el que le de producción y lo voy a pegar acá se
-->
me escapaba y con esto entonces para evitar tener que volver a configurar algo que ya
-->
ve lo que voy a hacer primero voy a obtener cuál es la mayor producción por año ok cuál
-->
es la mayor producción por año y después saco entonces los demás elementos entonces
-->
voy a hacer lo siguiente voy a agregar aquí ahora un aggregator row y ya está lo más
-->
lo manejamos voy a agregar aquí un thdfs output
-->
y voy entonces a hacer las conexiones aquí
-->
vamos a conectarlo aquí a este output
-->
listo entonces voy a sacar lo mismo ahora mira lo que voy a hacer primero
-->
voy a calcular cuánto ha sido la producción que he tenido por estado por temporada y por año
-->
me toca hacer la sumatoria pero voy a hacer algo particular diferente a la que tenía
-->
anteriormente voy a mandar esto primero a un archivo entonces voy a hacer aquí lo siguiente
-->
voy aquí al aggregator row voy entonces aquí donde dice editar esquema voy a sacar entonces
-->
aquí la columna estado voy a la columna temporada el anterior fue que saqué la producción por
-->
temporada y por estado esta va a sacar por estado temporada y por año se voy a colocar
-->
aquí un nuevo que se llame anualidad y este que está aquí va a ser de tipo integer y
-->
voy a colocar aquí total total on record producción y este va a ser de tipo doble
-->
la diferencia que hay el anteriormente solamente tenía la producción por estado y temporada
-->
aquí va a sacar la producción por estado temporada y por año ok y es
-->
configuramos entonces el group by que sería agrupar aquí espero un momento que algunos
-->
que todavía han terminado listo el te agregué este row entonces vamos a agrupar por primero
-->
por estado en este caso mapea la columna de salida está bien mapeada con la columna
-->
entrada vamos a agregar la temporada que si me toca cambiar así son
-->
voy a agrupar ahora por anualidad que sería crop gear
-->
y vamos a hacer entonces una operación en el total voy a hacer una suma
-->
de la producción que tengo y voy a ignorar null por el problema que tuve ahora parecido
-->
al otro la única diferencia que hay es que ahora voy a agrupar por estado temporada y
-->
por año el anterior solamente agrupe por estado y temporada ahora quiero saber cuál
-->
es la producción tanto por estado temporada y por año ahora en el hdfs output haga lo
-->
siguiente entonces configuremos usar conexión existente busque un archivo que ya esté aquí
-->
se me olvidó configurarla aquí
-->
un archivo que esté aquí cualquiera y lo va a llamar este archivo de salida producción
-->
llámelo producción
-->
producción estado under score temporada anualidad listo aquí le da sobre escribir
-->
por si acaso lo vamos a ejecutar varias veces y dígale que incluya el hdfs voy a hacer un
-->
ejemplo entonces mientras usted va haciendo esa parte de aquí tenemos estado en ese momento
-->
para mostrarle cómo quedaría los datos
-->
si más o menos ese archivo de salida va a quedar de esta manera tengo el estado y tengo
-->
cada temporada el año y voy a sacar la producción por año más o menos me quedaría así se me
-->
repite varias veces el estado temporada y por cada año en la temporada me va a calcular el
-->
valor eso es lo que va a volver hasta aquí estamos hasta aquí ahora quiero sacar lo
-->
quiero sacar el máximo de cada grupo que está aquí entonces si analiza el máximo
-->
el máximo de aquí cuál sería carrito sería de aquí sería este de aquí verdad sería el máximo
-->
si saco el máximo de acá sería este registro de acá o sea el que el año que más tiene o sea
-->
tengo hasta aquí voy a sacar estos máximos de acá se voy a crear aquí voy a colocarle para
-->
identificar voy a colocarle aquí una nota aquí voy a colocar se obtienen se obtiene lo producido
-->
por año producido por año en cada estado y temporada eso lo que se hace aquí lo acomoda
-->
como usted quiera para poder bajar esto tiene que hacerlo acá directamente en el
-->
aquí creo también lo puedo hacer aquí lo puedo hacer aquí lo voy a bajar para que me quede así
-->
bueno no me está bajado ahí está esto hace esto voy a hacer lo siguiente entonces
-->
voy a sacar la segunda parte que es esta que está aquí entonces para esto vamos a hacer
-->
lo siguiente voy a hacer lo siguiente voy a hacer aquí un hdfs input nuevamente un
-->
te agregué terro te agregué terro te agregué terro y voy a mandar a este señor a un thdfs output
-->
porque así vamos a ver si así
-->
la única forma de hacer esto es lo siguiente este año no lo puedo sacar así directamente
-->
sino a partir de cómo está el archivo yo voy a sacar el máximo valor o sea en pocas palabras
-->
cuál es el máximo producido en esta en esto sería esta fila de aquí entonces que voy a
-->
hacer yo voy a agrupar por estado y temporada y voy a sacar el max producido eso lo que
-->
voy a hacer en este agregate significa que me está dando al final estaría dando en el
-->
grupo este de aquí me estaría dando x a y me estaría dando 13 en este grupo de acá que
-->
voy a hacer voy a agrupar por estado y temporada y sacar el máximo me estaría dando x
-->
b y aquí me estaría dando 18 y después hago un join de estos dos archivos para
-->
poder sacar el año aclaro que lo estoy haciendo así es para poder incursionar
-->
en el join vamos a lo siguiente vamos aquí vamos a conectar este señor de aquí con este de acá
-->
y voy a conectar este te agregué este rub con este de acá
-->
el archivo que voy a leer aquí es el archivo producido en este punto de acá
-->
entonces voy a hacer lo siguiente voy a exportar el esquema de aquí editar esquema
-->
ya saben cómo es aquí voy aquí al output editar esquema y aquí sería la antepenúltima
-->
exporto y lo voy a llamar entonces producción estado temporada año anualidad porque no es
-->
anualidad punto xml ok del output me robo el nombre del archivo para poderlo copiar allá en el input
-->
aquí usar conexión existente sí dígame
-->
Beatriz vamos a ver si está raro un momento permítame y accedo de forma
-->
interactiva para poder manipular su pantalla voy a darle aquí un guardar aquí un momento voy a
-->
hacer no sé si pronto fue voy a cerrar este señor de acá volverlo a ir para ver no sé fue
-->
algo extraño hay que ese algo extraño ahí no sigamos entonces no sé qué pasó ahí algo
-->
extrañamente raro ya se quitó ahí se realicen el ingeniero bueno aquí el input este que está
-->
aquí editamos el esquema y exporto aquí y aquí sería producción estado temporada anualidad ok
-->
ese en realidad estoy sacando el máximo de un grupo que normalmente uno lo hace con un sub
-->
query acá lo que voy a hacer es que voy a dividirlo en dos archivos y después hago un
-->
de los dos y resuelvo el problema voy a esperar que algunos están
-->
mientras algunos que todavía están mientras espero alguno me regala
-->
dos minutos con café y vengo a seguir inmediatamente con café mientras algunos terminan ahí ya