1:04:11
2024-10-09 10:47:18
1:29:40
2024-10-09 12:28:28
25:55
2024-10-10 09:26:29
2:38:45
2024-10-10 09:59:31
46:32
2024-10-10 15:02:46
Visit the Big Data course recordings page
WEBVTT
-->
Perfecto, listo. Ok y nos falta definir entonces este archivo, este hfc output. Recuerda que
-->
un put que era que tenía un archivo en un sistema, en este caso en el sistema hos y lo mandé a
-->
hadut. En este caso le voy a decir ahora, oye lo que tú estás convirtiendo, déjalo en hadut,
-->
en el output. Dele doble clic por favor a ese output y dígale que vamos a usar una conexión
-->
existente. En el nombre del archivo váyase y escoja producción y le agrega el prefijo
-->
curado al final para que sea más sencillo la configuración curado y colóquenle, sí curado,
-->
.csv, aquí está, .csv, producción y le coloca el sufijo, le coloca el sufijo, perdón,
-->
con the score curado es sufijo, no prefiero, quedaría como producción, voy a mostrar aquí
-->
cómo quedaría el nombre de salida, quedaría inputs producción, vean aquí me quedó mal,
-->
con the score curado, le coloco un punto ahí demás,
-->
bueno creo que, perdón, todavía falta una configuración en el thdfs output, asegura que
-->
el separador no lo cambie porque por defecto está con punto y coma, colóquenle coma y dígale
-->
que incluya el header, incluir header, bueno creo que ahora sí no tenemos ya más configuraciones,
-->
vamos a darle mejor sobre escribir porque si lo ejecutamos dos veces este job no sale error,
-->
entonces sí vamos al thdfs output y vamos a darle sobre escribir y bueno voy a proceder a
-->
ejecutarlo a ver si tenemos algún problema, bueno aquí me dice ok, guardamos elementos,
-->
bueno aquí tenemos un problemita que se puede estar agarrando,
-->
si tengo poca memoria, listo ya empezó la ejecución en el caso mío,
-->
bueno en el caso mío listo, se ejecutó y me mostró el log, este que está aquí,
-->
que es un log de tipo trace y debería estar este archivito acá también en el
-->
explorador de archivos, en la carpeta tech, va a estar entonces en esta carpeta, aquí está
-->
los logs y ahí está entonces mi archivo de log diciéndole que primero se conectó,
-->
inició la lectura y archivo curado de forma correcta, si todo está bien debería ver ese
-->
archivo en explorador de en el browser, ahí está producción curado, veamos a ver quién tiene
-->
problemas, Eva tienes problemas, no sé que está viendo el código, vamos a ver muéstame el
-->
run, la ejecución, ahí hay la pestaña de run job, la que tienes al lado de component,
-->
ahí es el que no salió, listo, file no puede invocar, listo sigue va a ver, al final sigue hasta
-->
el final, si está mal, hdf, oc, output y snoo, dale doble clic ahora si, dale doble clic para ver si
-->
el problema es que no creaste la conexión, dale doble clic a la configuración del output,
-->
listo, si notas usaste conexión existente pero no en el component list no sesionaste la conexión,
-->
entonces ahí sería a efecto, ahora vuelve a ejecutar nuevamente, perfecto, listo,
-->
voy a intentar ejecutar nuevamente para ver cómo me queda el log, ejecutar nuevamente,
-->
aquí pues estaría la misma salida y el archivo se sobreescribe,
-->
perfecto, noto que tienes un error Martín, vamos a ver qué error te salió,
-->
dice error debido, muéstrame el run nuevamente, muéstrame el run y dice lo siguiente,
-->
run time, ya existe, ok, vete a tu file output delimite, por favor dale doble clic, doble clic
-->
y vete en advanced settings, en ese mismo, en el lado izquierdo exactamente, advanced settings,
-->
voy a ver si amplio memoria ahora más tarde porque reducimos al,
-->
espera que cargue un momentico que está previamente lento, raro, espera un momento,
-->
que fue que se logó, mientras voy a revisar la memoria de mi máquina un momento Martín,
-->
a ver CMD, voy a ejecutar aquí en CMD,
-->
dale doble clic nuevamente al componente para que vea si de pronto ya coge, estás,
-->
memoria 73%,
-->
voy a conectarme de forma interactiva a tu máquina Martín un momento,
-->
memoria, no hay mucho problema, voy a hacer al ingeniero entonces,
-->
vamos a cerrar aquí y vamos a abrir nuevamente este job,
-->
vamos a darle aquí doble clic,
-->
no, pero ese componente parece que estuviese como vacío,
-->
no, vamos a borrarlo un momento al ingeniero también, vamos a borrarlo aquí,
-->
como si no subiese a agregar el código de forma correcta,
-->
lo voy a eliminar un momento y voy a agregar nuevamente un test file,
-->
conectamos este señor acá y tu carpeta es temporal, sí, tengo temporal,
-->
vamos a ver,
-->
log.txt y aquí puede haber una opción, bueno aquí le digo incluir header,
-->
que añada y advance settings, no, no está por defecto, no sé,
-->
ese componente tuyo está como raro, es decir, cuando le agregaste parece que
-->
no hubiese agregado el código del componente raro,
-->
listo, esperemos un momento a ver si ejecuta de forma correcta, listo,
-->
aquí hay algo extrañamente raro, es que el teguar, este job te lo,
-->
vea lo siguiente, este job, no sé, aquí hubo un error,
-->
que está ejecutando este teguar por cada línea que está llegando aquí,
-->
vamos a ver qué pasó aquí,
-->
vamos a ver a eso, que tienes aquí, no, al eso, porque en ese caso él permitió,
-->
mira lo siguiente, él permitió que conectaras un main acá, al conectar este main de aquí
-->
a acá, que fue donde la pregunta, la pregunta que me están haciendo también alguien del componente
-->
y por qué no main, en este caso al conectar el main de aquí a acá, cada fila que está escribiendo
-->
va a generar un log, entonces aquí vamos a eliminar este señor de aquí y vamos a
-->
contar, manda un mensaje, listo, voy a ejecutar aquí, sí, porque si no al main por cada línea
-->
me va a ejecutar el señor ese, fíjate que ahora sí, listo, perfecto, dese cuenta que él no está
-->
mostrando fila por fila porque él está en macreduce y trata de actualizar la interfaz
-->
para que se vea gráficamente qué es lo que estoy haciendo, bueno, ahí tenemos eso, debería tener
-->
tu archivo de temporal, y este Jog lo que buscaba era lo siguiente, y cerré sin querer mi
-->
invitata, lo que buscaba pues es agregar el componente t igual que lo habíamos dicho,
-->
pero cómo hacíamos para gestionar esos logs, que esos logs me van a mandar si
-->
hay algún error o si he hecho alguna trazabilidad con el t igual que fue el caso que hice,
-->
entonces vamos con el siguiente ejemplo, dígame,
-->
ok,
-->
ok, pero bueno, pero te ejecuto bien ahora,
-->
ah bueno, perfecto, ahí no sé qué pudo haber pasado, ahí en realidad contó algo que faltaba
-->
por actualizar quizás, bueno, vamos entonces a hacer el siguiente ahora, sí,
-->
ah, listo, bien, subescribiendo, hay dos formas, listo, vamos a ver un momento,
-->
en el momento que me cargue aquí, lo cerré sin querer, como el log lo estoy mandando a este
-->
archivo que es el tfile output, voy a darle doble clic aquí, y aquí yo cogí la opción
-->
añadir, si esto lo quito, él sobreescribe, como lo dejé, entonces le va añadiendo,
-->
pero como es log, tengo que añadirlo, porque van a haber muchas ejecuciones ahí, listo,
-->
perfecto, vamos entonces, esta es una limpieza ahí para entender que todo lo que está después
-->
del input hacia allá, entonces va a generar un script para ejecutarlo con más produce,
-->
vamos a hacer entonces ahora clic derecho, aquí otro job, si son tan amables,
-->
voy a hacer lo siguiente, job
-->
calcular, vamos a llamarlo job calcular,
-->
producción por estado y temporada,
-->
calcula producción por estado y temporada, cierto, el día de ayer me hicieron dos preguntas,
-->
la primera pregunta era con relación, qué pasaría si yo tengo un job de un tercero y
-->
no hay una relación de orden de cuál se ejecuta primero, es decir, no está un
-->
subyoke ok o un component ok, o en su efecto un error pues, ahí pues, ahí sería prueba y error,
-->
es decir, ejecutar el job y ver para ver qué se ejecuta primero, después segundo, no hay forma,
-->
la documentación no se refiere a cómo haría en ese caso, de ahí a lo que me hizo la
-->
pregunta, que me parece interesante, es adoptar buenas prácticas de tal forma en que cuando
-->
tenga su job le defina un orden, de tal forma que un tercero, cuando lo lea ya sepa de dónde
-->
empieza, qué sigue y dónde termina, la otra pregunta que me hicieron fue con respecto a
-->
si podía cambiar los permisos de archivo desde acá, desde un job, cuando migraba,
-->
cuando ponía un archivo allá en Hadut, no, no podría, ahí lo máximo es que tú tienes eso en
-->
el clúster de Hadut y en el caso particular como lo tengo en Linus, lo que haría es que se
-->
define la política de a nivel de grupo y a nivel de archivo cuando se adiciona ese usuario
-->
en ese elemento, es decir, en pocas palabras, lo hago a nivel del sistema operativo donde
-->
clúster y no lo podía hacer desde talent, no hay forma en que te hagas, depende directamente de
-->
cómo tengas configurado tu clúster ahí arriba. Si, hay un, puedes hacer aquí dos cosas,
-->
si no estoy mal, este señor no sé si lo tiene, pero aquí tienes un TSCH y te conectas
-->
a terminal, por ejemplo, y ahí le mandas el componente y hay otro componente,
-->
este por SH y hay otro componente que se llama T, no, espérame y me acuerdo el componente,
-->
que lo que hace es que me ejecuta un script, pero el script lo ejecuta directamente sobre la
-->
máquina en que esté, donde tenga el job, por ejemplo, pero déjame ir, recuerdo ahora,
-->
pero sé que podía con SH conectarme y mandarle el comando, si estoy remoto, si estoy local,
-->
hay otro componente ahí que me permite ejecutar un script, ahora me acuerdo bien y te lo busco
-->
bien y ahora se me olvidó. Listo, vamos entonces aquí a crear job, vamos aquí,
-->
era, ¿cómo se llamaba? Job Calcular, Producción,
-->
por, muchas gracias, por estado y temporada. Le vamos a dar aquí Finish,
-->
en este no me voy a poner tan formal, agregando el T-Preyoy y el T-Warp, simplemente lo que
-->
quería mostrar con esto es que ya sabe cómo puede hacer trazabilidad a nivel de log, ok?
-->
Vamos en este señor y lo que voy a hacer es lo siguiente, voy a agregar aquí un componente
-->
de tipo thsinput, es más, no me complico la vida y lo voy a copiar de acá, este,
-->
porque voy a usar el mismo archivo, copiar y lo voy a pegar en el nuevo, pegar aquí.
-->
Acto seguido, voy a agregar entonces el señor, voy a hacer una función de grupo,
-->
esta función de grupo ya no utilizaría el SELECT, bueno, principalmente porque no estoy
-->
en una base de datos, no tengo el lenguaje de consulta SELECT, pero por ejemplo el caso
-->
del señor Spark, partiendo de que ya tú has tenido, mucha gente sabe del señor de SQL,
-->
entonces como te mostré en esta diapositiva que estaba acá, este señor, hay una librería que
-->
tú generas un punto SQL, o sea, te das un punto SQL, generas una consulta SQL sobre un
-->
archivo y este señor, esa librería lo que hace es que automáticamente pues la convierte en
-->
un script, o sea, toma eso y lo convierte en unas funciones propias para sacar lo que tú
-->
quieres, entonces aclaro que lo que voy a hacer, porque para hacer funciones de grupo hay dos
-->
elementos, un T-aggregator row y un T-aggregator show row, esos son los dos señores que están
-->
aquí. A ver, esta fue la pregunta que me habían hecho inicialmente, creo que en el primer curso
-->
de talent data integration, listo, ¿qué es la diferencia que hay? La diferencia que hay es que
-->
en primer lugar lo que hace este T-aggregator row, vamos a suponer que yo tenga el siguiente
-->
listado de registros, voy a crear aquí algo nuevo, tengo por ejemplo department ID y tenga
-->
salario, listo, aquí este agregador funcionaría igual si viniera de una base de datos o si
-->
viniera de un archivo, funcionaría igual a excepción de esta parte porque este agregador
-->
row lo que haría como viene de un THCF input, él mandaría click a mac reduce, pero si no
-->
lo siguiente, uno por acá, digamos gana cinco pesos, este señor tiene uno, mismo departamento,
-->
gana dos pesos, este señor aquí, bueno voy a colocar aquí algo intermedio para que se
-->
vea más fácilmente y no agregar tanto registro, cuatro que está aquí, listo, entonces aquí
-->
tiene nueve, listo por acá y aquí tiene por ejemplo un dos y aquí gana tres, entonces tú haces,
-->
bueno voy a hacer un agrupamiento, un group by y le voy a decir department ID, por ejemplo que
-->
agrupe por departamento, lo mismo que hablamos allá, si en realidad esto viene de una base
-->
de datos, hay una alta probabilidad que salga más eficiente que haga el group by
-->
directamente y lo utilices acá a que te haga el group by la herramienta, pero vamos a ver cómo
-->
funciona, a ver, este group by department ID lo que hace entonces es que toma los registros
-->
tal cual como vengan de la base de datos, significa en que empieza a ser grupitos,
-->
entonces dice, bueno en el grupo de uno voy a meter este departamento de aquí, listo,
-->
voy a meter este señor de aquí, en el grupo de este señor que está aquí no es igual,
-->
no lo meto, este señor entonces como no lo meto aquí, creo otro grupo acá,
-->
este grupo lo voy a llamar cuatro y este señor aquí entonces agrega a este señor,
-->
a este registro aquí, después sigue recorriendo y se da cuenta que hay uno que ya, un grupo
-->
que ya creó, adiciona este señor aquí y se da cuenta que este elemento no está,
-->
entonces crea otro grupo y nada más tiene un registro, ya después que él tiene los grupos,
-->
es claro entonces en que yo puedo hacerle cualquier función de grupo, entonces yo digo
-->
sum por ejemplo salario, ya se da cuenta entonces internamente que hay tres grupos,
-->
mandaría el grupo uno y suma este con este, que es salario, daría siete, después tiene el
-->
cuatro y el cuatro nada más hay uno, daría nueve y viene el dos y nada más hay un registro
-->
y le daría tres, eso es lo que hace este agregante, a nivel de que cómo hace internamente el señor,
-->
pues en realidad es una tabla de un diccionario de datos, un diccionario y hashea las claves y
-->
después busca con los claves hash, cuáles son iguales y con diccionarios es mucho más
-->
eficiente y haciendo tablas hash, es un más eficiente internamente, claro que este método
-->
funciona muy bien cuando la tabla, los elementos son muy, que vas a ordenar no es tan grande.
-->
La otra que es el T-agregate short row, lo que hace es internamente lo siguiente,
-->
primero antes de agrupar entonces ordeno los datos, entonces ordenar los datos me
-->
quedaría más o menos el registro es así uno, me quedaría este señor acá, me quedaría después el dos
-->
y me quedaría después el cuatro, notará que el algoritmo ahora de agrupamiento es sencillo,
-->
tomo este primer elemento hasta que encuentre uno diferente, recorro, recorro, recorro,
-->
aquí encuentro el primer diferente, este es un grupo, esto lo meto en un grupo,
-->
después empiezo otro grupo desde aquí hasta donde hay uno diferente y esto es mucho más rápido,
-->
claro, habría que analizar algo, cuánto te cuesta el ordenamiento, cuánto te cuesta,
-->
porque te puede costar. Listo, entonces esa sería la idea,
-->
si, bueno esta pregunta será interesante, no lo he analizado, es si hay diferencias,
-->
como yo mando esto a Macreduce, si hay diferencia en el script generado cuando hago este
-->
ordenamiento, ese lo voy a investigar porque ahora se me ocurrió esa pregunta y no sé,
-->
es decir, si hay diferencia justamente cuando, como esto lo mando a Macreduce,
-->
al usar un T-agregate o usar un T-agregate short row,
-->
¿qué diferencia habría en el script generado?
-->
Me lo investigo porque Java, este herramienta no te muestra el script que generó,
-->
no sé por qué no te muestra ese script, el internamente es un script pero te lo oculta
-->
y lo manda a ejecutar con Macreduce en tiempo de ejecución, perdón, no que te lo oculte,
-->
creo que el tiempo de ejecución es que te lo genera y lo manda para Macreduce.
-->
Son las dos formas, como este archivo es muy pequeño, vamos a usar la primera,
-->
en verdad hay un poco de datos que es a T-agregate row, ahora voy a usar otro con
-->
T-shorter row y voy a hacer lo siguiente entonces, voy a hacer aquí un T-HDFS,
-->
T-HDFS output, este output de aquí me lo voy a llevar
-->
y me voy a traer, qué pena, la conexión esta del T-Preyoxy para que sea más
-->
eficiente porque tengo, voy a usar tres componentes que se van a conectar a Hadoop,
-->
entonces voy a conectar, voy a traerme también el T-Preyoxy.
-->
Y listo, llego entonces, voy a enlazar los componentes, main aquí y este de acá,
-->
como esto lo copié, seguramente tiene la configuración del punto y está perfecto,
-->
este T-HDFS output, lo copié de allá, creo que me va a copiar el esquema anterior,
-->
no, qué pena, este T-HDFS output, créelo, porque este va a ser nuevo,
-->
no es el mismo formato, vamos a borrarlo de aquí y agreguemos un T-HDFS output de cero,
-->
porque la salida va a ser un poco diferente.
-->
Voy a iniciar con esto y después voy a agregar algo interesante en el T-Aggregate y voy a ver
-->
dos formas de hacerle lo mismo, usted analizará cuál, hay una que es más fácil pero de pronto
-->
la otra forma te pueda solucionar algún problema diferente. Vamos a empezar con este que es muy
-->
sencillo. Voy a conectar el T-Aggregate si al nuevo T-HDFS output, voy a agregar la conexión
-->
que creo que debe estar aquí ya, esta y el output no debe estar, porque es nuevo,
-->
voy a usar conexión existente y por favor asegura que me parece un pequeño, bueno,
-->
no box, no sé si era un box o una pequeña falla en este componente en que si hay una
-->
conexión solamente una debería aparecer esa conexión ya automáticamente.
-->
Listo, entonces voy a hacer lo siguiente ahora, voy a configurar este T-Aggregate row,
-->
nos piden, aquí tengo el enunciado, espérate que es por estado, producción,
-->
prestado y temporada Listo, entonces vamos aquí a editar el esquema,
-->
borremos este esquema de salida que me quedó de la vez pasada Listo que hemos todo este
-->
esquema de salida, borremos todas estas y solamente vamos a mandar la que necesitamos.
-->
El estado está en el campo state name, la mando para este lado, la temporada está en season,
-->
y el total de esa temporada va a ser una columna nueva, entonces mejor agrego una nueva columna
-->
aquí, total, under score, temporada, total temporada, bueno, aunque aquí lo coloque,
-->
aquí es una mezcolanza de inglés con español, vamos a darle aquí, ok,
-->
yes, espérate un momento que no lo, ok, dígame, ah perfecto Listo, qué pena, iba a comentar
-->
algo, se me olvidó, editar esquema, aquí este campo es Float porque este señor viene la
-->
producción, esta producción no sé por qué está string, esta producción debería ser,
-->
confirmo el archivo, voy a confirmar el archivo un momento,
-->
esa producción tiene que ser Float, no sé por qué está de tipo string, la tomo mal,
-->
voy a cambiar aquí producción a Float, esperamos que no tengamos problemas, Float,
-->
y el total debería ser como hizo usted Float porque voy a calcular un valor,
-->
Float aquí y Float acá, esperamos que no tengamos problemas,
-->
perfecto, entonces listo, damos aquí ok, y aquí ahora es sencillo entonces,
-->
como nos piden por estado y temporada, la agrupación va a ser primero por estado y
-->
después por temporada, y acto seguido, vamos a calcular, damos aquí, en la columna salida
-->
total temporada, vamos a hacer un zoom de la producción e ignora los nulos, por favor,
-->
porque si hay un nulo, como esto estoy ejecutando es contra Java, si hay un nulo
-->
va a tener un problema en la suma esa, entonces para evitar cualquier vamos a darle
-->
ignorar nulos, perfecto, listo, aquí no hay más nada, vamos a la salida,
-->
confirmemos que el esquema de salida corresponde al de entrada, es decir,
-->
deberían llegar tres columnas acá, aquí esta sería stay name, season y total temporada, ok,
-->
voy aquí a abrir nombre archivo, para que sea más sencillo la ruta, voy a coger cualquier
-->
archivo que está en input aquí y le voy a cambiar el nombre, voy a coger producción
-->
nuevamente, ok, y lo voy a llamar entonces ahora, producción underscore por estado,
-->
underscore temporada,
-->
le voy a decir que el separador es coma y que incluya un header, voy a hacer entonces
-->
aquí un thdfs input, input y un telokrow para confirmar a ver qué me está dando,
-->
conecto el input con el telokrow y como buena práctica ya deberíamos para la
-->
pregunta que me hicieron de los job, vamos a colocarle un disparador para que un tercero
-->
sepa que la ejecución va a ser en este orden, primero el de arriba y después este que está
-->
aquí, configuremos lo siguiente, el thdfs input, entonces voy a copiar la salida de este señor,
-->
es decir, el nombre archivo de salida, control c, lo voy a colocar acá de entrada,
-->
le digo usar conexión existente,
-->
tomo la entrada, le digo que es por coma y que tiene un encabezado,
-->
por último falta el esquema del input 2, ese esquema pues son tres columnas y quizás
-->
podíamos hacerlo de forma manual, no demoramos menos, pero podíamos aplicar
-->
lo mismo del día de ayer, partiendo que el esquema de salida va a ser igual a este de entrada,
-->
vamos aquí al output, vamos aquí a editar esquema y hay una opción que dice exportar,
-->
es la antepenultima, exportar y le voy a colocar esquema producción por estado,
-->
se me escapaba, no leí el punto csv o después no lo leí, esquema producción
-->
con direct core por estado, punto xml que es csv, xml, ok, guardar, ok y ahora lo recupera en
-->
el input, le da editar esquema, ahí aparece nada más una sola opción y debería aparecer
-->
y importas entonces el esquema, vamos listo, quiero copiar el esquema de salida a esta
-->
entrada, ok, vamos primero al output que es el que tiene el esquema, damos click al
-->
lado de editar esquema, ya hay el botón que está antepenultimo que dice exportar todas
-->
las filas a un archivo xml, le damos click ahí, listo aquí le coloca un nombre y asegura que
-->
tenga extensión al final, punto xml, le damos guardar y ahora lo que procedemos a hacer lo
-->
siguiente ahora, váyase al input, váyase a editar esquema y aparece una opción nada más
-->
si está vacío, si no le da opción este replace all, escoge aquí y busca el esquema de salida y va a
-->
copiar exactamente los valores que están ahí, perfecto, listo, creo que aquí no hay más nada
-->
que hacer, vamos a darle guardar y vamos a intentar ejecutar para ver si no hay ningún error
-->
vamos a ver que no hay error esperando para ver
-->
no sé si de pronto la conversión que hicimos a ese flood, esperemos que no nos cause algún
-->
tipo de error, vamos a ver, sí terminó bien, perfecto
-->
Eva noto que tienes un error allá, ya llegó a tu
-->
máquina para ver, bueno en el caso mío creo que me está ejecutando el de limpieza
-->
y quiero que ejecute es este de producción, si me ejecutó el que no era es el archivo de
-->
producción por estado
-->
perfecto, listo
-->
aquí sabes que vamos a cambiar la entrada porque vamos a tomar archivo curado para que
-->
no salga ese espacio en blanco, voy a cambiar aquí producción por producción curado a ver
-->
si dejamos el mismo, pero producción curado lo tengo en cero, ah porque lo ejecuté y lo
-->
intento ejecutar nuevamente
-->
Eva voy con el caso tuyo, vamos a ver, dice cuál es el error, que no está que, archivo
-->
no existe, ah Eva el problema, es un problema complicado, un momento te explico que pasó,
-->
bueno interesante, Eva vamos, todos estamos en la ventana de mirándolas, si no alcanzan
-->
a ver la máquina Eva que estoy presentando verdad, Eva el problema es el siguiente,
-->
fíjate lo siguiente, el primer subyok, el primer subyok que tienes allá arriba lo
-->
uniste con el subyok de abajo con un component ok, entonces prácticamente estamos uniendo
-->
tal vez todo un subyok, entonces date cuenta que él empezó a agregar y también ejecutó
-->
hacia abajo, por qué, porque le colocaste un component ok, al colocarle un component
-->
ok entonces intenta ejecutar los dos secuencialmente, primero empezó con la parte de la
-->
sacarla de los archivos y intentó leer un archivo que tuyo está creado, entonces
-->
cámbiale porque necesito que se ejecute primero el subyok de arriba, cámbiale y borra la
-->
línea de un component y ahora únela con disparador, click derecho, disparador y
-->
colócale on subyok ok, de tal forma que termine el subyok primero en la primera
-->
opción, on subyok ok, la conectas por favor, e intenta ejecutar ahora a ver,
-->
pues el orden ejecutaría el subyok de arriba primero y después ejecutaría el subyok de abajo
-->
listo, que decía, que vamos a cambiar, voy a ejecutar nuevamente en el caso mío que
-->
tengo un problemita aquí, voy a ejecutar nuevamente el de limpieza
-->
el de limpieza lo voy a ejecutar un momento
-->
si, ejecutando limpieza
-->
porque se me borró, cuando lo intenté ejecutarlo cancele y me quedó en cero
-->
ahora el nuevo subyok no voy a coger ahora en el input, en el primer input
-->
no voy a coger producción, sino producción curado
-->
producción curado, no debería porque el mismo formato de archivo no debería causar
-->
problemas, voy a ejecutar nuevamente aquí y me va a ejecutar nuevamente limpieza
-->
me espere un momento listo, deja que termine para que no me quede el
-->
ejecutar el nuevo con el curado para que no me aparezcan los espacios en blanco
-->
ahí, ejecuto aquí
-->
listo, vamos a ver qué error me salió
-->
ah, ya existe, claro, se me escapó la recomendación, aquí le tengo como create,
-->
debí darle sobrescribir, aquí no es crear, sino sobrescribir, ejecuto
-->
se cuenta que esta arquitectura de tener una conexión es mucho mejor en el sentido de que
-->
la puedo aprovechar, aquí ya está el archivo curado, es decir, te va a salir el espacio en blanco
-->
Ernesto, tienes un error, es porque seguramente vete al tu input y mira a ver si tienes configurado
-->
que está para crear o para sobrescribir, dale doble clic al thf output y busca la opción,
-->
ahí cambia la opción de crear por sobrescribir y vuelve a ejecutar por favor, bueno,
-->
me avisas si alguno no le sale, por favor, o tiene algún error, listo
-->
Eva, Jasmine, voy con tu máquina, Jasmine, que no la estoy viendo, claro, vete a tu input,
-->
por favor, a tu input, el primero, el primer input, el primer input, por favor,
-->
dale doble clic, ese es el input, el input, el input, thf input, ese que está ahí el primero,
-->
sí, exactamente, vete a tu nombre de archivo y dale al final al botón, al botón,
-->
vete a tu input y escoge mejor producción curado,
-->
producción curado, que es más pequeño porque le quitará espacio en blanco, vuelve a ejecutar,
-->
por favor, si estás amable, perfecto, estoy claro, el archivo, porque ese lo curé en la
-->
primer job, seguimos entonces, seguimos, voy a alguien que tenga todavía algún error, Catalina,
-->
bueno, muéstrame el run que ejecutó, muéstrame el run, no sale el error, muéstrame el hdf output,
-->
hdf output, doble clic, bueno, parece que todo está bien, vamos a ejecutar entonces, a ver,
-->
qué pasa, ejecutamos para ver eso, ahí está, ok, tenemos un error de codificación,
-->
ve esa code un momento, ahí esa code para ver dónde marca el error,
-->
está el punto rojo ahí, dele el punto rojo, por favor, suba, carajo, ahora sí tenemos un
-->
problema ahí con ese cache, suba a ver, suba un poco para ver, déjeme yo, que este error sí
-->
está diferente porque está marcando, espérense a su máquina de manera interactiva, que este
-->
está marcando un punto de listo, permítame descontrolar un momento, este cache cierra,
-->
aquí hay un telok row,
-->
ok, permítame montar aquí, editar esquema,
-->
ah, tiene el esquema vacío, yo te hice el export de la salida del esquema del hdf output,
-->
ahora sí tome el control usted, Catarina, entre a thdf output, por favor, dele doble clic,
-->
al dedo, váyase donde dice editar esquema si es tan amable, listo, váyase a la parte izquierda
-->
de los botones de la parte izquierda y busque el botoncito que hice exportar, al ladito
-->
del que, ese que está ahí listo, ah no, ya lo tiene, ya lo había hecho ya, faltó
-->
importarlo, dale cancelar entonces, cancelar, váyase al input, editar esquema,
-->
y al botón, al último botón que hizo, entonces dale clic ahí por favor, escogemos ese, abrir,
-->
ok, ah yes, dele ejecutar para ahí, yo creo que ese es el error, porque estaba esperando un
-->
código ahí, y quizás ese sería el error, hay un problema en el zoom de la salida,
-->
dele kill, mate ese proceso, mate ese proceso, ve yase al t-aggregator row, porque está sumando
-->
state temporada, ahí el input column, dale clic ahí, debería ser total, clic ahí,
-->
de ese producción, producción, ahora sí, intente ejecutar nuevamente, creo que,
-->
váyase a su HDFS input un momento, al input, el HDFS input por favor, o no,
-->
o en el t-rrow, creo que lo podemos hacer en el t-rrow, váyase al t-rrow por favor,
-->
váyase a editar esquema, ahora sí, ah no, qué pena, es un error red de Java, dele ok
-->
nuevamente, qué pena, ok, váyase al input column, de su cuenta que la cambió, y le
-->
apreció, recuerda que había cogido producción, dele un enter, que ese es un problema de Java con
-->
ese table, dele enter ahí, ahora sí, es un problema netamente de ese con el table de Java,
-->
ese componente yo lo odiaba a nivel cuando hacía interfaces de stock, un componente muy
-->
complicado de manejar, ahora sí se da cuenta que no, ahora sí está calculando, ahora sí,
-->
perfecto, listo, entonces ahí está, bueno, listo, bueno, qué tal si hacemos un pequeño break,
-->
ya pasaron las primeras dos horas, hacemos un break de 10 minutos, y volvemos entonces en 10,
-->
ok, a tomar algo frío, yo en este caso caliente, a tomar un cafecito, volvemos en 10 entonces,
-->
bueno, nuevamente continuamos, bueno, nuevamente continuamos entonces, después de
-->
ese pequeño receso, vamos a agregar otro elemento para comparar lo siguiente, hay unas
-->
opciones que te ofrece la herramienta, que son opciones de compresión de los datos, es decir,
-->
partiendo de que vamos a tener sobre un sistema Hadoop, y Hadoop, los nodos que tenga, va a
-->
replicar los archivos, es claro que vas a consumir bastante almacenamiento secundario,
-->
pero si uno hace una comparación, el secundario es muchísimo más barato que el primario, lo que
-->
en realidad vale es ese primario, entre más memoria, pues pagando mucho más. Ahora,
-->
vamos a hacer lo siguiente para la prueba y hacer la pequeña comparación entonces,
-->
vamos a darle aquí clic derecho al job, vamos a copiar ese mismo yo,
-->
el que se llama Job Calcular, producción por estado, vamos a copiarlo, bueno, perdón,
-->
vamos mejor a duplicarlo, Duplicate, y vamos a llamarlo entonces Job, bueno,
-->
el mismo nombre, y le coloco el sufijo al final, comprimido, comprimido, claro que,
-->
de te cuenta, esto que hicimos fue sumar y restar, que es lo mismo, normalmente tú
-->
llevas a un archivo y ese archivo, pues lo llevas a un Data Warehouse, un Data Lighthouse,
-->
y ahí lo graficas lo que tú quieres, estamos asumiendo que ese archivo, producción,
-->
era elevadamente grande, entonces, al ser elevadamente grande, un sistema tradicional,
-->
pues puede ser un poco más, más tedioso y complicado, evidentemente, ahora vamos a hacer
-->
el labor, el Join, vamos a ver cómo nos funciona ese Join ahora, vamos a darle aquí OK,
-->
y cierra, por favor, el de temporada y abre la duplicado, lo que termina en comprimido,
-->
si es tan amable,
-->
listo, y ahora a la salida, al THDFC Output, haga lo siguiente, dele doble clic a esta salida
-->
aquí, y ahora hay una opción que dice comprensión de data, comprensión, comprensión de data,
-->
y hay diferentes algoritmos de comprensión, solamente, bueno, especifica GSI y BSI,
-->
que son algoritmos de comprensión, implementaciones de algoritmos de comprensión para Linux,
-->
GSI, que fue creado en el mundo Linux, más que todo, ahí dejamos por defecto,
-->
y ahora, como va a estar comprimido, voy a cambiarle el nombre, le voy a quitar el punto
-->
CSV, y lo voy a dejar, producción por estado, temporada, donde el score comprimido y no va
-->
a tener extensión, comprimido, sin extensión, listo, entonces, listo, perfecto, y ahora,
-->
si lo mando a comprimir, para poderlo leer, tengo que decir que lo descomprima,
-->
por lo tanto, en el HDFS input, dígale que está comprimido, y asegure que el algoritmo
-->
de comprensión y descomprensión sea el mismo, en este caso sería GSI para los dos lados,
-->
dele aquí, guardar, y mandelo a ejecutar, por favor,
-->
ah, claro, no, sí, sí, claro, sí señor, así, perfecto,
-->
voy a cambiarle el nombre, si no, sale error, si tendría que colocar el mismo archivo acá,
-->
sí señor, así es, perfectamente, así es,
-->
voy a ejecutar entonces, ahora sí, comprimido, ejecutar, debería dar lo mismo, pero voy a
-->
comparar para ver la tasa de comprensión de cómo quedaría el archivo sin comprimir,
-->
y cuánto quedaría el archivo comprimido, bueno, ahí está, listo, está ejecutando,
-->
perfecto, ejecutó bien, y voy a mi sistema de ficheros, y voy a ver,
-->
debió agregarme un nuevo archivo, y ahí está, el comprimido pesa 1.47 y el no comprimido pesa
-->
3.8, hay una relación de diferencia, vamos a ver de cuánto, 1.48 entre 3.8,
-->
la tasa de comprensión fue del 40%, aproximadamente, entonces ahí podías
-->
reducir pues algún tamaño con respecto a lo que estás haciendo, listo, la tasa de comprensión
-->
fue del 40%, aproximadamente, bueno, ahí tú decides si deseas mandarlo a comprimir o no,
-->
lo que tienes que asegurar es que el mismo algoritmo de comprensión es el mismo algoritmo
-->
de descompresión, listo, paré de contar, seguimos entonces, vamos a hacer el siguiente
-->
ejercicio, este siguiente ejercicio me va a permitir incluir algunas cosas propias de
-->
la herramienta, que me facilitan algunas cosas, y este ejercicio lo voy a hacer de
-->
forma para poder incluir otro componente que no alcanzamos a ver, que es el T-Join,
-->
habíamos visto el componente T-Map, pero vamos al componente T-Join que no lo habíamos visto,
-->
vamos a lo siguiente ahora, por favor, vayamos nuevamente a la herramienta,
-->
y ahora vayamos a lo siguiente, clic derecho y vamos a crear un nuevo job,
-->
vamos a llamarlo job-calcular-producción-estado-temporada-underscore y anualidad,
-->
es decir, le voy a agregar un nuevo elemento al Group Byte, ya te digo para qué,
-->
el mismo nombre que tenía anteriormente, pero le agregué ahora y anualidad, el mismo nombre,
-->
y le agregué al final y anualidad, vamos aquí a darle Finish,
-->
listo, entonces, como es parecido, voy a ir al Calcular sin comprimir, para no estar
-->
chuleando ahí, y voy a copiar el T-Join, y voy a copiar este señor en el nuevo job,
-->
aquí, esto quedaría así, este es el nuevo job, pego esto aquí, listo, voy a cerrar este está acá,
-->
y quedaría así, copié el que no comprimí para no estar chuleando la compresión,
-->
por favor, quite este THS Opus para poner el contexto del problema que queremos resolver,
-->
coloca aquí un T-Lock Row para que me entienda el contexto de lo que quiero hacer,
-->
entonces, voy por acá, y conecto el T-Aggregator Row con el T-Lock Row, repito,
-->
voy a contextualizar el problema que quiero resolver, vayamos al T-Aggregator Row,
-->
por favor, vamos a editar esquema, y lo único que vamos a hacer es vamos a agregar
-->
CrocGear, lo pasamos de la entrada a la salida del T-Aggregator Row, CrocGear,
-->
CrocGear, quedamos aquí, ok, y agrega que vamos a hacer el agrupamiento por estado,
-->
por temporada, y ahora por año, CrocGear, qué pena, vamos a agregar aquí,
-->
porque es que después no me va a entender, vamos a agregar aquí un T-Short Row,
-->
T-Short Row, porque para ver el contexto del problema, pues no se ve tan bien,
-->
aquí me piden que instale, bajar e instalar,
-->
si, aquí, entonces, voy a hacer lo siguiente, conecto a este T-Short Row y el T-Short Row al
-->
T-Lock Row, por favor, instale lo que no es el caso, y también instálalo, por favor, perfecto,
-->
listo, y entonces vamos a hacer el agrupamiento, vamos a darle, agregamos columna,
-->
y la siguiente columna, asegúrese que esa columna es alfanumérico,
-->
la siguiente columna agrega que ordene por temporada,
-->
también que se es alfanumérico, y quiero lo siguiente, la tercera columna ordena por total
-->
temporada, ese total temporada sí es numérico y ordenarlo de manera descendente,
-->
enter,
-->
vayamos, ahora sí, y aquí no hay más nada, vamos a ejecutar para ver y le voy a mostrar
-->
qué es lo que quiero resolver, listo, voy a ejecutar aquí,
-->
vamos a que ejecute ahí, nos muestre, a ver, que no salga, que listo, a ver, vamos a ver,
-->
debería salir lo mismo, si tenemos la misma configuración del ordenamiento,
-->
pues debería salir lo mismo, y aquí está,
-->
aquí me faltó lo siguiente, por qué no mostró el año, aquí faltó el año,
-->
déjame ver que no me está mostrando el año, por qué no mostró el año,
-->
te agregué enter row un momento, te reviso para ver,
-->
bueno, el cross ya está aquí, o sea que no es el problema de él,
-->
debe ser en el te show row, voy a buscar la salida, editar salida,
-->
aquí está cross gear y el te low row, a ver qué pasa, editar esquema,
-->
porque yo no vi el año ahí, yo vi el año ahí,
-->
no sé, a usted le apareció el año ya, a mí no está apareciendo, voy a cambiar un
-->
poco la salida para que me lo muestre de tipo table, sé que estoy viendo mal,
-->
y a mí por qué no me apareció, vamos a ver,
-->
no sé si fue, porque se está, qué pena, se está ejecutando, qué,
-->
gracias, gracias, gracias, no he guardado aquí, excelente,
-->
lo revisé, y abrí el que no era, vamos a ver, ejecutemos aquí,
-->
ejecutemos aquí, es anualidad, este que está aquí,
-->
ahora sí ejecuto,
-->
bueno, vamos a lo siguiente, ahora sí, ejecutando,
-->
perfecto, listo, entonces aquí va así, gracias,
-->
bueno, mire lo que quiero resolver aquí,
-->
note lo siguiente, quiero sacar el año en que más tuve producción en la temporada,
-->
entonces mire lo siguiente, voy a tomar estos archivos que están aquí, este de aquí,
-->
por ejemplo estos de acá, y los voy a pegar para verlo mejor aquí,
-->
significa, aquí no, acá, en el notepad,
-->
significa lo siguiente entonces, no guardar, perfecto,
-->
veamos, para este estado, para esta temporada, el mayor es este, 2010,
-->
hay solo archivo, no hay mucho problema con esto, entonces me debería dar esto de aquí,
-->
cierto, para el segundo, para la temporada carif, mire lo siguiente, en la temporada carif,
-->
el mayor producción cuál fue, fue esta, la primera, en el 2000, esta de acá,
-->
si me equivoco me avisen entonces, si escogí la correcta, para rabis nada más hay una sola,
-->
o sea que quiero el año en que más produce, y en la temporada que llama año completo,
-->
la mayor, no, porque es que lo organizé, perdón, es que lo organizé de esta manera,
-->
el short el organizé, claro que estaba en la primera, estaba allá primero,
-->
pregunto, si entiende que es lo que quiero sacar, quiero sacar el año en que más tuve
-->
temporada, esto es muy común cuando tú vas a sacar en un supermercado cuáles son
-->
cinco productos más vendidos por cliente, entonces es una relación de ese cliente,
-->
le haces una campaña a ese cliente y lo convences a que compre esos productos que compra
-->
el más nuevo producto que tú tienes, entendemos el problema, verdad, entonces vamos a lo siguiente,
-->
yo he visto algunas soluciones que empiezan de esta forma, vamos a te agregué este,
-->
ahora quitan este crossgear de aquí, y este crossgear lo colocan acá, no, no lo hago usted
-->
ya para que me entienda, para que me entienda la idea, entonces mira lo que hace, aquí hay una
-->
función que se llama fers, que saca de la primera registro del grupo saca el primero,
-->
prácticamente parecido a lo que estoy buscando, verdad, quiero sacar el primero
-->
porque lo ordené, pero hay un pequeño problema aquí, que este elemento en este
-->
punto al decir primero no está ordenado, al no está ordenado esa solución no me funciona,
-->
entonces hay otros que hacen lo siguiente, viene aquí y saca el max, si sacas el max de ahí,
-->
hay un pequeño problema que no ha sumado todavía, entonces como no ha sumado está
-->
sacando el máximo de todos, porque de entrada ya te cambió el agrupamiento, entonces ¿qué voy
-->
a hacer? vamos a hacer este problema de dos formas, vamos a dejarlo como estaba, aquí tengo
-->
una suma, una suma que tengo aquí, voy a quitar este señor de acá y voy a agregarle
-->
como estaba originalmente que era crossgear así, mira como hago ahora, en este punto
-->
ya el elemento sale ordenado, ahora el elemento ordenado voy a hacer lo siguiente, ahora sí
-->
voy a hacer lo siguiente, voy a agregar otro T-aggregator row, para verificar que todo está
-->
bien voy a agregar un texor row nuevamente, ese texor es para verificar el texor antes,
-->
sin el texor antes no me sale la solución al problema, el último texor es para verificar
-->
que todo esté bien y voy a agregar el texor row para verificar que todo esté bien aquí, texor row
-->
y voy a unir los componentes entonces, de este señor va aquí,
-->
de este señor va aquí
-->
y este señor va acá
-->
listo, ahora recuerda que la salida en el T-aggregator row me entra esto de acá,
-->
voy a colocarlo aquí nuevamente en un nuevo archivo, bueno guardar este señor,
-->
voy a verlo aquí, pues no pate este para que sean dos aquí,
-->
voy a agregar eso, significa que esto está ordenado ya, entonces voy a decir lo siguiente ahora,
-->
en el segundo T-aggregator row voy a decirle ahora que me cambio el ordenamiento, ordename
-->
nada más por, voy aquí a editar esquema, voy a sacar toda la entrada a la salida,
-->
o sea le doy aquí en el más de acaba en las flechas la segunda fechita para que
-->
mande toda la entrada hacia salida, toda la entrada a la salida y le doy aquí ok,
-->
y ahora voy a esto de acá, lo siguiente, entonces voy a agrupar por state name,
-->
por si son nada más y ahora sí voy a hacer lo siguiente,
-->
voy a mostrar, voy a agregar aquí las dos columnas restante que es total y cross-gear
-->
y le voy a decir hazme el favor y saca el primer elemento del grupo, first,
-->
dile que ignore los nulos por si acaso, por si las dudas, que no creo porque está sacando
-->
el máximo, creo que hay carecía de sentido, bueno pero puede dar nulo,
-->
ahora entiende cuál es la idea, el archivo me llega así ya ordenado ¿verdad? entonces con
-->
el primer elemento no hay problema ¿por qué? porque solamente hay uno solo, pues es el
-->
primero y el último, pero veamos cómo funcionaría con este grupo de acá,
-->
mira cómo hace, aquí agrupa por este y por este, significa que todos estos registros están,
-->
pero como viene ordenado yo voy a decirle oye de este grupo sácame el primero de total
-->
temporada y sácame el primero de cross-gear, ya está ordenado, sacaría este de aquí,
-->
de este pasaría lo mismo, entonces aquí está el grupo y le voy a decir perdón,
-->
está el grupo y le voy a decir oye de ese grupo sácame el primer elemento que sería este y
-->
sácame el primer elemento que sería este, pregunto para decirme está entendiendo la idea,
-->
si yo cambio este primero a max, a max será que me da, me daría con el más, será usted que
-->
cree, será que me da, no no daría, claro me daría este valor de aquí pero me devolvería
-->
2010, ahora el max, como el primero es el máximo, ahí podía haber colocado al máximo
-->
y me hubiera dado, pero bueno vamos a ver, vamos a colocar aquí first a ver si esto da,
-->
enter, vamos a ejecutar ahora,
-->
ah para el techo otro, sígame, así, sí, sí, segundo techo va a estar en mi morde,
-->
stay name, el segunda columna va a ser de bien copiar y pegar, SISO, alfanumérico y el total
-->
temporada,
-->
no daría lo mismo, vamos a ordenar mejor por año porque nada más va a haber un solo archivo,
-->
cross gear, vamos a hacer ascendente, no porque un solo registro, creo que este está de más,
-->
esta columna estaría de más porque hay un solo registro por este grupo, nada más
-->
stay name y SISO, alfanumérico, ejecutemos aquí para ver si tengo razón, porque nada
-->
más hay un registro por grupo,
-->
vamos a ver que sale, vamos a ver entonces, voy a tomar este señor que es el que estaba
-->
haciendo las pruebas, control C, voy a pegarlo, en este creo que fue que hice la prueba, vamos a ver,
-->
ahí está, 2010 corresponde a este de aquí, 2000 corresponde a este que saqué acá, 2010 corresponde
-->
con el valor y el año entero 2003 y ahí está, el problema es que esa consulta tiene un pequeñito
-->
problema, así como está, pero si entiende la idea, ese first no está, ese first lo podías
-->
hacer en versión MySQL antes de la 8.0, después de la 8.0 de MySQL, MySQL decidió ajustarse
-->
netamente al estándar de SQL y en estándar de SQL no permite mostrar ese primero,
-->
aquí sería interesante hacer por ejemplo los cinco primeros o los dos primeros que es
-->
ahora lo hacemos para ver, miren cuál es el problema de la consulta, suponte el caso
-->
que existen dos registros, así este registro que está aquí y este sea 2010,
-->
aquí debería de volver dos, porque el máximo lo tiene dos, dos no ha estado,
-->
pero así como está la consulta devuelve el primero, entonces la consulta sería incompleta ahí,
-->
no me estaría dando resultado deseado, en caso de que existan dos que cumplan la condición como
-->
es el que estoy mostrando aquí, aquí qué pasaría, puede que este orden me lo da de esta
-->
manera, pero él va a sacar el primero y en realidad debería devolverme los dos,
-->
para esto vamos entonces a agregar otro componente entonces, vamos a hacer lo siguiente,
-->
vamos a tomar este señor clic derecho, vamos a duplicarlo, hacerlo de otra forma
-->
diferente y lo vamos a decir, le quito el copy y le agrego segunda forma,
-->
segunda forma, accedemos entonces a la segunda forma, voy a quitar este señor
-->
y acceder aquí a la segunda forma y listo, vamos a hacer lo siguiente, entonces borre desde
-->
claro que el no es necesario para que funcione esta segunda forma, pero es más eficiente si
-->
no está ordenado, segunda forma la agregué para solucionar el problema cuando son varios y
-->
segundo para agregar el componente que no lo habíamos visto, entonces vamos por aquí
-->
y ahora lo que vamos a hacer es lo siguiente, vamos aquí a un T, vamos a hacer aquí un T HDF
-->
output, une el T short con el T HDF output aquí en este punto y este señor lo que va a hacer
-->
es lo siguiente, entonces vamos a mandarlo, aquí lo configuramos, usar conexión existente,
-->
vea que tiene todo el sentido el THF connection porque nada más se conecta una sola vez
-->
y para mayor facilidad voy a hacer lo siguiente, voy aquí a
-->
especificar una ruta aquí, voy a escoger el archivo producción,
-->
voy a llamar a este archivo producción underscore estado, underscore anualidad y
-->
le voy a colocar el prefijo, el sufijo T de temporal, temporal. Le agregué el nombre,
-->
cuando tomé uno que ya sabía que era producción y le agregué estado anualidad
-->
cuando le corté para decir que es un temporal. Ahora tome este mismo suyop,
-->
tome este mismo suyop, control C, control V y lo coloca acá abajito.
-->
Dítele el T short row que ya no es necesario, aclaro que el T short de
-->
arriba es para, es más eficiente, ya te explico por qué y conecta el T agregate con
-->
el THDFs output.
-->
Y elimina entonces, vete al T agregate row del segundo componente y dile lo siguiente ahora,
-->
quítale para que no agrupe por crossgear, elimina crossgear de la salida por favor,
-->
porque si no te lo va a mandar para aquel lado, nada más va a mandar tres
-->
componentes y cámbiale este nombre de total temporada a máximo under score total temporada.
-->
Es decir, cambie el nombre de total temporada a máximo total temporada.
-->
Dese cuenta que al final en esta parte de vida estamos terminando EGTL,
-->
porque ya la herramienta automáticamente genera los scripts para ejecutarlo con
-->
reduce, estamos terminando en herramientas tipo EGTL prácticamente. Vamos a darle aquí OK
-->
y cambiamos el nombre, dale yes aquí, listo y el nombre de la columna ya lo cambió y mire
-->
lo que voy a hacer aquí, voy a sacar el máximo de, un momento que aquí,
-->
no perdón, perdón, aquí me caché, qué pena me caché aquí, me faltó un T agregadito
-->
row aquí, no me daría, espera un momento, parece que va a salir de esta forma, no me daría,
-->
espera un momento a ver, ah ya, perdón, sí sí, por favor haga lo siguiente, qué pena,
-->
el error fue en sí, está bien, ya me ubiqué, ya me ubiqué, ya me ubiqué, listo. Dese cuenta
-->
que en este archivo de salida me va a quedar toda la anualidad, es decir, me va a quedar este
-->
archivo de esta manera, da con la subatoria, entonces, qué voy a hacer aquí, lo que voy
-->
a hacer ahora es que esta entrada de aquí va a ser la del archivo este de acá, entonces
-->
voy a tomar este archivo de acá y lo voy a colocar aquí como entrada,
-->
voy a tomar el esquema de salida de este lado,
-->
editar esquema y lo voy a exportar, voy a exportarlo entonces, lo exporto y le digo
-->
esquema producción por estado, poranualidad.xml, guardar, ok, y ahora cambio el esquema de este
-->
señor, borro todo eso que está ahí, aunque yo creo que nada más si doy click,
-->
salía lo que estaba allá, aparence a mí y me quedaría así.
-->
En el output, sí señor, gracias, no lo ha cambiado, así, punto y coma, sí señor,
-->
punto y coma, perdón, cambiar punto y coma por coma e incluir el hider,
-->
y el override, gracias, este sería también para este,
-->
el otro, pero aquí todavía no lo configuro, todavía lo configuro para ver.
-->
Ya voy a explicar cuál es la idea que tengo, gráficamente le explico entonces.
-->
Si ya agregó el esquema, tuvo que haber cambiado el te agregaste robo, el segundo,
-->
el de abajo, doble click, y a este señor vamos a agruparlo por este máximo, listo,
-->
vamos aquí a editar esquema por favor, y pasa total temporada para este lado,
-->
borra el máximo que teníamos y pasa total temporada, le das ok,
-->
y vayamos aquí al output, a la salida, a este lo voy a llamar producción estado anualidad máxima
-->
on the record temporal, y aquí le cambio, así gracias, el cambio aquí del separador a coma,
-->
y le incluyo el hider, y le doy sobre escribir por si las dudas.
-->
Mientras va, te voy a ejemplificar que fue lo que hice aquí, lo que estoy haciendo,
-->
bueno creo que ya la mayoría configuró, preste atención lo que,
-->
qué es lo que, cuál es la idea, la idea del primer archivo es que me quede de esta forma
-->
organizado, me quedo organizado entonces por estado, temporada, año y cuál es el máximo
-->
valor, perfecto, no hay problema, ese fue lo que hicimos inicialmente, ahora este archivo
-->
que está haciendo lo siguiente, está diciendo agrúpame por estado y agrúpame por temporada
-->
y sácame el mayor, aquí hay uno solo, no hay problema, saco este señor de aquí, listo,
-->
me queda este registro de este lado, vamos con el siguiente, estoy diciendo agrúpame por este
-->
y por este, todos los grupos serían hasta aquí, este rabi no entra, voy a agrupar por este y
-->
por este, entonces ya de este grupo, sácame el máximo valor que tienes aquí, cuál es el
-->
máximo valor aquí, qué pena, aquí no guarda años, cuál es el máximo valor aquí, de
-->
este cuál sería, este de aquí verdad, o sea que guardaría este registro acá,
-->
de este que está aquí sácame el máximo, hay un solo elemento, me guardaría en este
-->
archivo, esta parte y de este que está aquí, qué haría, sácame el máximo de aquí,
-->
el grupo de estos dos, sácame el máximo y el máximo cuál es, este de aquí,
-->
ahora aquí tengo los máximos y acá tengo todos los elementos, ahora voy a hacer entonces un
-->
join, voy a agrupar este con este prácticamente para sacar el año, de esta forma es más lenta
-->
pero podía hacer una consulta en que si hay dos máximos, o sea hay un solo máximo y dos registros
-->
con ese máximo te devuelve los dos registros, vamos entonces, cómo sería ahora, vamos a lo
-->
siguiente ahora, ya tengo estos archivos que quedaron en temporal, quedaron allá y ahora
-->
vamos a hacer lo siguiente, voy a agregar un THDFS input, a THDFS input, este de aquí,
-->
agrego, bueno son dos que tengo que agregar,
-->
pego aquí,
-->
en el primer input voy a tomar el primer temporal,
-->
lo pego acá, bueno aquí le digo usar conexión existente, component list,
-->
hdfs, el primero, le digo que es coma, coma y que tiene un header,
-->
y el segundo input iría con el segundo, el archivo del segundo output, este de acá,
-->
y sería por coma
-->
y tendría un header aquí de uno,
-->
ahí sale, ah listo, me aparece que aquí component list, conexión list, ahora sí,
-->
voy a copiar el esquema de acá, este esquema de salida, no sé si lo tengo ya,
-->
ya lo había copiado, no recuerdo si este esquema lo había exportado,
-->
creo que sí, bueno por si las dudas voy a exportar este esquema, no recuerdo si lo
-->
había exportado, voy a darle aquí un export y le voy a dar, si creo que se llama esquema estado
-->
por anualidad, .xml, guardar, sí, y lo exporto aquí en el primero, importo perdón, en el input
-->
primero, perfecto, y el otro sería,
-->
y no sé si cambié el nombre de la variable,
-->
aquí me hizo esto mal porque el máximo de aquí debió ser total temporada,
-->
total temporada, hay problemas de variable,
-->
si te da tiempo por favor, cámbiate el nombre del tegregator row del segundo,
-->
cambia el nombre de la variable a máxima para que sea más sencillo de entender,
-->
en el tegregator row, en editar el esquema, cambia la variable a máximo,
-->
con el score total temporada, para que tenga más sentido digamos los nombres,
-->
ahí te dejo el tegregator row y espero un momento que me adelanté mucho, coloca un tejoin,
-->
tejoin, coloquemos un telok row para no subir y verificar que todo debía dar el mismo resultado,
-->
tejoin, son tejoin, tejoin y un telok row, y une ahora lo siguiente,
-->
hay algunos que todavía están, espero un momento para ver entonces,
-->
no espero alguno que todavía le hace falta,
-->
Martina voy a tomar tu pantalla para ver si hay alguno que le hace falta alguna configuración,
-->
perfecto listo, muéstrame tu tegregator row Martina, si ahí está mal, tegregator row el 2,
-->
el segundo, perfecto listo, ahora hiciste los inputs, los HDFS inputs, los que están abajo,
-->
ah están abajo, los de abajo, los que vamos a hacer join ahora, muéstrame el 3, muéstrame
-->
el esquema, debía haber cuatro columnas en ese esquema, falta, listo, entonces listo,
-->
a abrir, perfecto, ok, vete al siguiendo output ese que está ahí, dale editar el esquema,
-->
coge el mismo esquema que es prácticamente el mismo, tómalo ahí por favor, listo,
-->
y borra la última columna que es crossgear, porque ese esquema nada más tiene tres,
-->
doble clic, borra la última crossgear, la última columna la borras y cambia el nombre
-->
a la tercera columna, llámala Máximo también para saber cuando hagamos el join, Máximo total
-->
columna, ahí tiene el total de aviso, ok, perfecto, por ahí vamos, agrega ahora un T-Join y un T-Lockrow,
-->
listo, yo creo que el nombre yo no lo cambié acá, Máximo, ah, ahí se me olvidó agregar,
-->
que fue, se me olvidó agregar esta parte, abrí el, quito crossgear y cambio este señor a Máximo,
-->
ponder el export total,
-->
sí, vamos a ver esto, vamos que lo hice muy rápido en realidad, bueno, vuestra vez por
-->
favor, tu te agregue este row, el segundo, si está mal el segundo, perfecto, ahí hay un
-->
problema, el input de la columna en las operaciones, ahí tienes producción, vete a la
-->
configuración de la parte de abajo, ve dónde dice, ahí tiene que ser es, abre y ahí tiene
-->
que ser es, ah no, tienes un problema ahí, muéstrame tu THDFS input por favor, el segundo,
-->
muéstrame tu esquema, editar esquema, y ahí está el problema, ese no es, vamos a hacer lo
-->
siguiente, dale cancelar ahí, vete a tu THDFS output el primero, que es el archivo que va a tomar
-->
como base, dale doble clic ahí, dale editar esquema, editar esquema y haz lo siguiente,
-->
exporta este contexto por favor, esa que está ahí, esa que está ahí, exportar y escoge el
-->
último nombre que tienes ahí, que es ese que está ahí, por si acaso, dale guardar,
-->
por si acaso no es igual, dale guardar por favor, GGC, ok, ok, dale ok por favor,
-->
ahora en tu HDFS input 2, dale doble clic y vamos al esquema del 2, el HDFS input,
-->
editar esquema y escoge ahí el botón para replay, el otro, el de al lado,
-->
el de replay, ese que está ahí y busca el esquema que hiciste ahora que es el último,
-->
a abrir, ok, yes, vete ahora a tu T-aggregator row 2
-->
y ahora donde dice máximo temporada input column por favor, ve y cambia, debería ser total,
-->
temporada, perfecto, vete a tu input 3, listo, vete el esquema por favor, dale ahí,
-->
reemplazar y ese esquema va a ser el de anualidad, ese esquema producción, listo,
-->
ok, vete ahora a tu input 4, input 4 y la entrada tiene que ser la del input,
-->
dale ahí, usar, listo, ahí, listo, vete ahora a tu THDFS output 2, no, el output 2,
-->
ese que está ahí y copia, el nombre del archivo de salida pero ahí te faltó el nombre,
-->
cambia el nombre, anualidad under score máximo ten, anualidad, under score máximo under score ten,
-->
listo, copia ese nombre y lo pegas en el output 4, vete al esquema y darle el mismo esquema
-->
del que tomamos ahora que era el último que está ahí y quítale el crossgear que no tiene
-->
crossgear, eliminar y cambia el nombre real a máximo under score total, under score total, ok,
-->
enter ahí, ok, máximo total, under score, bueno eso está bien, ok, no hay problema con eso,
-->
el nombre es lo de menos, siempre cuando tenga el orden, listo, ahora sí, ojo con las entradas
-->
por favor los inputs, vete los outputs por favor, el 1 y revisemos la entrada, el output 1 muestra
-->
el double click, con coma incluye header, el output 2 por favor, para ver cómo tienes la salida,
-->
cambia la opción a over white, over white, perdón, opción de crear en over white,
-->
dale separador de campo coma y dale incluir header, vete al input 3 para ver,
-->
ahí es coma y perfecto y el input 4 muestra para confirmar, el input 4,
-->
y listo, bueno bien, sí, porque nada más salen tres del target, sí señor, así es,
-->
bueno, vamos entonces y hacemos el T-Join, aplica lo mismo que el T-MAT, la primera tabla
-->
subordina a las demás, entonces voy a conectar la primera tabla que está aquí que es el 3 y
-->
conecto acá y conecto el 4 al join como tal, ahí te aparece lo mismo que te aparecía en el T-MAT,
-->
tengo main y tengo lookup, conecta el join al telorow y configuremos el join,
-->
doble clic, ahí estoy, mira que te aparece una opción que dice incluir lookup columnas en output,
-->
en pocas palabras está diciendo, oye, las columnas que están en output 4, el lookup que
-->
es este de aquí, quieren que se vean en la salida, aquí carece el sentido porque las
-->
columnas que están aquí son las mismas de allá, es decir, aquí hay 3 y acá hay más,
-->
en el principal, o sea que eso carece sentido colocarlo ahí en este caso,
-->
vamos en el key definition y hagamos el join, el join sería fácil, agrega una nueva columna,
-->
el stand name del 1 va con el stand name del input 4, cambio aquí el season del input 3
-->
iría con el season del input 4 y ahora el total temporada iría con el máximo de temporada
-->
del input 4, si lo deja hasta ahí lo que se haría sería un left join del input 3 al input
-->
4, pero lo que me interesa es un inner join, es el chuleo inner join, todavía no lo ejecuté,
-->
carece de sentido que deje los temporales allá, coloque un tepos job
-->
y mande a eliminar los temporales con el thdfs, delete,
-->
usar conexión existente y vas a copiar aquí la ruta esta del temporal 1,
-->
si quieres copias de aquí, duplicar y lo haces entonces con, aquí se me olvidó la conexión,
-->
voy a copiar la salida el temporal 2 que se llama máxima y uno al tepos job los 2 delete,
-->
iterate aquí listo, aquí sería click derecho, disparador, on component ok,
-->
y aquí define el orden de ejecución por la buena práctica que deberíamos tener,
-->
a la pregunta que me hicieron de cuál inicia primero debíamos acostumbrarnos entonces a
-->
definir este orden aquí, con com on sub job ok, quedaría así,
-->
bueno voy a disminuir esto aquí, voy a subir esto acá,
-->
si dígame,
-->
pero vamos a lo siguiente, en el primer momento, la pregunta creo que me hizo es
-->
por qué uno este con este aquí, fue así verdad, esa fue la pregunta más que todo,
-->
bueno bien, lo que pasa es que este segundo recordará que va a tomar el archivo que saque
-->
de aquí, listo, entonces aquí se está ejecutado secuencia, significa terminado este,
-->
ejecuto este, o sea que estos dos no lo podría ejecutar en paralelo porque este de aquí
-->
depende de este de acá, me tocaría ejecutarlo secuencial y este sub job que está aquí depende
-->
de los dos sub jobs de arriba, entonces me tocaría ejecutarlo secuencial, o sea si quisiera
-->
colocar este multi trea, bueno pero tampoco funcionaría este extra acá, multi trea que
-->
secuencio, quitándole evidentemente las líneas, podía usarme un error de ejecución,
-->
porque terminaría uno sin haber terminado la dependencia del otro, no sé si esa fue su
-->
pregunta, ya entiendo, lo que pasa es, ya entendí su parte gráfica, disparador aquí,
-->
si se da cuenta lo que pasa es que para unir su job por orden tengo que coger el primer
-->
elemento, es una cuestión gráfica, es decir, este último no lo puedo conectar con un sub job
-->
porque la herramienta le pide que coloque el primer componente del sub job para conectarlo
-->
al primer sub job de acá, en pocas palabras, aquí no estoy diciendo, la herramienta aquí no
-->
está haciendo lo siguiente, no está ejecutando este primero y después ejecuta esto, no, aquí
-->
ejecuta este sub job completo y después ejecuta esto, lo que pasa es que gráficamente y la
-->
herramienta pide que debe conectarlo con el primer componente del sub job, entonces al final
-->
terminado esto no significa esto que él vaya conectado aquí sin haber ejecutado esto,
-->
conectar esto acá, no sé si me entienden la idea, ahora, pero fíjate algo, eso que tú me
-->
estabas preguntando, si yo llego a conectar este señor, no con un sub job ok, sino un componente
-->
ok, este señor qué va a pasar, me va a ejecutar este y todavía no ha terminado esta
-->
parte de aquí, porque ahora sí va a pasar en que dado que este componente se ejecutó bien,
-->
va a ejecutar esta línea de aquí sin haber ejecutado esto de acá, ahí sí va a tener un
-->
problema, entonces aquí si necesariamente es que gráficamente tiene que ser acá un
-->
on-con, un sub job ok, ahora, lo que tú me decías también es válido, ya te entendí la idea,
-->
pero sí te entendí la idea, sí te entendí la idea, yo podía haber hecho esto de esta
-->
manera, colocar un on-component ok aquí y ahora terminado esto, se ejecuta este señor y pude
-->
haber hecho esto de esta manera y daría exactamente lo mismo con la pequeña diferencia que al
-->
colocar on-component ok, estoy haciendo un solo sub job, esto que estoy haciendo sería
-->
lo mismo que haber hecho un sub job ok, vamos a probarlo enseguida para ver, debería funcionar,
-->
sí exactamente, porque terminado este me voy con este y terminado este me voy con este,
-->
lo mismo que si tuviese este unido el on-sub job ok, y este sabemos que terminado el
-->
sub job de ejecutar pues se ejecuta, entonces no hay problema, vamos a intentar a ver si no
-->
tenemos ningún error a ver, este sub job nos costó el tiempo bastante, vamos a ver,
-->
segunda forma voy a verificar si ejecutar aquí,
-->
si exactamente tu idea es válida perfectamente, no lo había cantado, también lo pude haber
-->
un momento aquí, editar esquema, qué pena no mande esto para allá, mande esto para acá,
-->
ok no me haya mandado salida aquí en el teyoy, tiene que estar aquí en editar esquema y mandar
-->
todo y ahora sí volvemos a ejecutar y debería exactamente ejecutar así como hubiese colocado un
-->
job ok también me hubiese funcionado también, gracias por la observación, también es válida la forma,
-->
ahí lo que cambia es la idea, tendría un solo sub job, aquí me salió desorganizado,
-->
pero bueno aquí tenemos, vamos a verificar si estos valores son los reales, debió dar
-->
exactamente lo mismo, dónde tenía ese archivo, bueno me dio esto, vamos a ver,
-->
el 2010 de autun es uno solo no hay problema, el 2000 fue para carif, está bien saqué el año 2000
-->
y el de rabi es uno solo, o sea que sí, si quiere dar usted shorter ahí por favor,
-->
pero es exactamente lo mismo, Martina tienes un error voy a verificar un momento tu pantalla,
-->
parece ser que, vamos a ver un momento, muéstrame por favor tu esquema y editar esquema un
-->
momento, editar esquema y ese esquema está mal porque ese es el de producción, dale
-->
replace un momento y ese esquema es el primero que sacamos que es, ah no eso lo hicimos
-->
de otra manera, dale cancelar ahí por favor, salte, dale cancelar ahí también, dale cancelar,
-->
vete a la parte de configuración del input, vete donde dice esquema, esquema y ahí está
-->
un combo vos, expande el combo vos por favor, no el combo vos del lado, el del ladito,
-->
donde dice build in, vete al repositorio, dale yes, vas a buscar el, espera que cargue un
-->
me viera mejor, entra a file delimited, entra a producción, entra metadata, escoge metadata,
-->
dale click en metadata, yes, revisemos, editar esquema por si acaso ve si sobre escribió o qué,
-->
es de al ladito, es de al ladito, ese de ahí, sí, te guste para ver,
-->
ok, te agregué este row uno, seguramente pasó algo aquí, vayas en el input column,
-->
en el input column de operaciones, vayas a operaciones y donde tiene la función suma,
-->
el input column tiene que ser total porque como cambió el esquema de entrada ya le cambia,
-->
es producción, perdón, producción, ejecute para ver, total temporada, no creo que no lo
-->
cambió, un momento, entra al te agregué este row, vayase al te agregué este row 2,
-->
vayase al HDFS input un momento, al 2 ese que está ahí, dele editar esquema un momento,
-->
editar esquema, ok, esta temporada está bien, está bien, ok, muestre nuevamente el
-->
run para ver dónde lo está marcando, el run, por favor, run ese que está ahí, dice,
-->
incompatible input con output, vamos a confirmar, vayase al te HDFS output un momento,
-->
el output 1, el esquema por favor, eso está bien, ok, vayase al input 1,
-->
revisamos para ver, ahí está bien, no le veo, dele editar esquema un momento ahí, editar
-->
tiene que estar ahí, cambio la flow por favor, pero claro, ese equivocó, fue la herramienta,
-->
porque la herramienta, no sé por qué, le clic ahí, le da flow y le da enter,
-->
ah perdón, dele cancelar, dele nuevamente editar, que cogimos la opción view nada más,
-->
chain, vamos ahí donde dice flow ok, yes, intenta ejecutar para ver, vayase al te join por
-->
favor, dele editar esquema al te join, editar esquema y falta algo, falta una definición ahí,
-->
vaya, agregue, dele cancelar ahí, cancel y agregue una nueva variable en el key de fiction,
-->
una nueva y listo y compare el total temporada con máximo temporada, dele click ahí,
-->
máximo temporada, entra ahí por si acaso, muéstrame el input 3 por favor, input 3 y muéstrame el input 4,
-->
muéstrame el output 2, para finalizar muéstrame el te join, en teoría,
-->
si, dele ejecutar nuevamente, en teoría no sé por qué, no le marco, bueno,
-->
aunque debió hacer, creo que va a hacerlo también,
-->
está marcando cero, significa que no hay, muéstrame ese, muéstrame ese, el input 2 por favor,
-->
el input 2 y muéstrame el esquema del input 2, eso está bien ok, muéstrame el target row,
-->
no, ahí no es suma, ahí es máximo, el max, enter y ejecute para ver,
-->
pero aún así, cuando no tenía esa variable, debió darle un registro, pero no sé por qué no le dio,
-->
dice solito como si estuviese, pobrecito, vamos a ver,
-->
no, hagamos algo, ahora lo reviso porque no sé por qué le está dando cero, es decir,
-->
ahí el inner join que tienes ahí, es decir, los registros de arriba no cuadran con los de
-->
abajo, no hay match, ahora revisamos para ver, ahora en el break yo me cuento su máquina y
-->
eso para ver qué pasó, es raro, bueno, listo, hagamos un pequeño break de 10 minuticos y
-->
volvemos en 10 entonces, listo, voy aquí a, volvemos en 10 entonces, volvemos a la única,
-->
bueno, 12 y 40 en cada sollo, ya venimos, bueno, continuamos, en cuanto a error Martina,
-->
por qué no te estaba dando resultado, no, quite el T-post job, póngalo entre el T-post job,
-->
si, ese T-post job es el que está, no, te da clic en el centro, clic derecho, desactivar post
-->
job, listo, que venga, le digo cuanto Z, perdón, cuanto Z, le da clic derecho, desactivar
-->
world to job, listo, ejecute para ver y vamos a los archivos que nos creó,
-->
a ver si ejecute para verla a ver, un momento por favor, perfecto, váyase ahora al browser,
-->
rf5, listo, ahora el que se llama, cuál sería, máximo 10 un momento y veamos el orden que está
-->
guardando ahí, dale descargar, ándale un momento a ver,
-->
ahí tiene, listo, el orden está así, está bien, ahora váyase a buscar el otro, el que no es el máximo,
-->
sino ese que está ahí, descarguenlo un momento a ver, es el primero, ese que está ahí,
-->
no veo el error todavía, váyase nuevamente al T-Join, al T-Join nuevamente para verificar
-->
la condición porque los archivos parecen estar bien, váyase al talent bit data un momento y
-->
le doble clic al T-Join, al T-Join nuevamente, al T-Join, row 7, stain name,
-->
qué cuestión tan rara, para revisar, déjeme ahora lo intento ver en más detalle a ver si,
-->
dale clic ahí nuevamente para ver, intento ver, listo, season, con season de acá,
-->
intento ejecutar para ver, activar current job, ahí está entrando bien, es decir está leyendo
-->
bien los registros pero el join lo está haciendo mal, lo que está dando 0, muestre el
-->
output del 2, el esquema, doble clic ahí un momento, voy a editar el esquema un momento,
-->
listo y el otro también, ya creo que sé cuál es el error, váyase al input 2,
-->
al editar el esquema, muéstame el esquema ese, ok listo ya, dale ok, váyase al
-->
aggregator row, voy a editar esquema, no ahí está bien, no está bien, está bien,
-->
decía que estaba mal, bueno sigamos y vemos para ver, a más tarde verifico para ver en
-->
detalle a ver qué pasa, bueno sigamos entonces, listo ahora revisamos bien,
-->
vamos a agregar aquí un componente en este mismo Jot, al final lo vamos a llamar T-STAT
-->
de Statistic Stack Catcher, ya vimos el T-Lock Catcher, este es T-Stack Catcher,
-->
este stack es de Statistic, enter, lo voy a colocar acá abajo,
-->
conecta este señor a un T-Map,
-->
agrega un T-Lock Row,
-->
esto lo que voy a hacer es verificar y me va a permitir analizar los tiempos de respuesta
-->
por componentes, digamos quieres verificar a ver cómo tú y yo y cuál es el tiempo de
-->
respuesta, de pronto en qué componentes hay cuello de botella, entonces este componente es
-->
muy bueno para esa parte, vamos a cruzar aquí a unir el T-Catcher con el T-Map,
-->
aquí con el T-Map y el T-Map lo unimos con el T-Lock Row, también pude haber hecho
-->
cambiarlo a un T-File delimited, pero en este caso lo voy a dejar en T-Lock Row,
-->
salida y lo voy a llamar salida estadísticas, estadísticas,
-->
va al T-Map y vamos a definir las siguientes columnas, estas son las columnas que tiene
-->
para analizar los tiempos de respuesta, agrega el PID que sería el identificador del proceso,
-->
entonces lo voy a mandar para este lado, agrega el moment, sería el tiempo en que inicia,
-->
agrega el mensaje, el mesas tie y el duración, ya digo cuáles son, PID, moment, mesas,
-->
mesas tie y duration, que sería esos cinco, bueno pude haber agregado más pero simplemente
-->
para ver, nada más esos cinco elementos, cinco componentes lo vamos a agregar, el PID,
-->
moment, mesas, mesas tie y duration, perfecto, le damos aquí ok,
-->
y ahora usted decide qué componentes desea analizar las estadísticas, entonces para cada
-->
componente en talent, por ejemplo voy a en el input uno, le voy a dar doble clic
-->
y todos los componentes de talent van a tener, normalmente están en advanced setting,
-->
una opción que dice te está cache estatística, si usted chulea ese señor significa que él va
-->
a analizar las estadísticas de ese componente, es cual los componentes que usted quiera,
-->
yo voy a coger este te agrega el primero, advanced setting y chuleo también,
-->
te está cache estatística, voy a coger el input dos y le doy te está cache, aquí todos los
-->
componentes van a tener esa característica en talent, entonces tú le de chuleas y escoge
-->
los componentes a los cuales tú deseas analizarle las estadísticas, perfecto,
-->
esto ya hiciste esta configuración ya, listo bien, ahora en el job tú vas a escoger qué
-->
componentes deseas analizar las estadísticas, vas entonces a cualquier componente, en este
-->
caso yo coge el input y en la sesión advanced setting todos van a tener un te está cache
-->
estatística, yo chuleo aquellos componentes a los cuales yo quiero analizar las estadísticas,
-->
en este caso yo escogí el input, escogí el te agrega este row, advanced setting,
-->
lo chuleo y el input dos, advanced setting, lo chuleo, significa que para esos tres componentes
-->
que he chuleado y que he elegido solamente van a usar las estadísticas para esos tres
-->
perfecto, si está mal, vamos a ejecutar nuevamente
-->
lo que usted quiera, yo cogí el input uno, el te agrega este row uno y el input dos,
-->
y listo, aquí le muestro las estadísticas,
-->
vamos a colocarla acá más o menos, ahí tengo todo eso que está ahí, está en milisegundos,
-->
cuánto demora, bueno, ahí debí colocar un momento y agrego porque no me alcanza a ver,
-->
un momento, porque no sé qué componente está hablando, me tocaría agregar
-->
mesa duración, un momento, creo que es context, un momento para ver porque no sé qué componente
-->
está hablando, listo, ejecutar, listo, agreguenle, sí señor, al tema le agrega origin,
-->
en el tema como salida agrega origin para saber quién es el componente que deseo,
-->
origin y ahí sí me va diciendo a qué componente se refiere,
-->
porque antes no lo tenía, antes me mostró de manera genérica y ahora debió aparecer acá,
-->
al principio, las estadísticas, aquí está,
-->
aquí está, ahí están los nombres de los componentes, entonces cuánto demoró, qué estaba haciendo,
-->
vamos a ver cómo me salió a mí,
-->
por ejemplo, el T aggregator row 1 demoró la ejecución en 7 mil 141, o sea, 7 milisegundos,
-->
7 segundos, perdón, y así sucesivamente le está mostrando ahí cuánto demoró cada uno,
-->
eso nada más que todo es para analizar cuellos de botella, cuando tienes un
-->
yo que de pronto tenga algunos tiempos de respuesta muy altos, te puede servir esas
-->
estadísticas para analizar cuál es el componente que más está demorando y ver para ver si cambia
-->
el componente o cambia la arquitectura que tengas de tu yo.
-->
Bueno, creo que aquí dejamos esta parte y seguimos con otro ejemplo entonces.
-->
Definamos otro job, vamos a llamarlo job, crear job, job,
-->
análisis,
-->
underscore, nba, análisis, underscore, nba, job, análisis, nba.
-->
Bien, veamos entonces lo que queremos hacer, en primer lugar, los archivos para este
-->
job se encuentran en S3, vamos a descargar primero los archivos, pero lo vamos a descargar
-->
siempre y cuando ya el archivo no esté, o sea, si el archivo ya está en Hadoop, no lo descargamos,
-->
si no está, en ese caso lo descargamos, esa es la idea que vamos a hacer entonces.
-->
Los archivos a descargar están metidos, ya les voy a decir, en un bucket, están metidos en
-->
el bucket llamado Noble Pro, dentro del bucket, en un bucket al final viene siendo la carpeta,
-->
hay una subcarpeta que se llama TIN y dentro de TIN hay tres archivos que se
-->
llaman exactamente igual de esta manera, un momento que no me copió,
-->
ah, es que estoy con un brose ahora, bueno, ya le digo los nombres, TIN,
-->
vamos a buscar un archivo que se llama nba2004shot.csv y aquí tengo entonces 2005 y 2006.
-->
Claro que con este archivo la nba registra, pero una cantidad de cosas de todos los jugadores,
-->
este listado tiene los tiros realizados por, bueno, evidentemente ahí es una muestra muy
-->
pequeña, pero la muestra real es que ellos guardan, por ejemplo, todos los tiros que
-->
ha llegado alguien en toda su historia. Entonces aquí va a aparecer, por ejemplo,
-->
Kobe Bryant, ese Kobe Bryant, más de todos los tiros de toda su vida y organizado por año,
-->
por mes, si falló o no falló, en qué distancia lo hizo, o sea, son unas estadísticas
-->
sumamente detalladas. Vamos a lo siguiente, ahora el problema que tengo es que los archivos
-->
no los tengo en Hadoop. Lo primero que voy a hacer es subir los Hadoop, pero con la condición
-->
de que solamente los voy a subir siempre y cuando el archivo no esté en Hadoop.
-->
Entonces para esto voy a analizar lo siguiente, vamos aquí a los ejemplos S3,
-->
S3, y el descargar archivo S3,
-->
S3, voy a copiar toda la conexión esta que tengo del subir archivo me sirve
-->
y la voy a pegar en mi nuevo job, en el S3, voy a pegar el que se llama yo descargar archivo
-->
S3 subido. Los componentes son los siguientes, primero quiero descargar siempre y cuando no esté,
-->
entonces aquí hay un componente que se llama THDFS, agréguelo por favor, THDFS exist.
-->
Bien, en este caso voy a hacer tres de este señor porque, bueno, primero hago uno y después
-->
completo uno, porque queda más fácil completarlo y después copiar y pegar.
-->
Voy a copiar, agregar un componente que se llama TS3 GET,
-->
voy a tener un THDFS PUT para colocar el archivo que descargué,
-->
y voy a tener acá y lo voy a cambiar de forma, aquí un TFILE DELETE,
-->
o sea que borre el archivo que descargué en la máquina porque ya lo tengo dejado,
-->
TFILE DELETE, ya los cinco componentes que necesitamos.
-->
Vamos a conectar el THDFS EXIST, clic derecho, con el disparador RUNIF,
-->
al S3, disparador, no me digas, el S3 lo conectamos entonces al HDFS PUT,
-->
con COMPONENT OK, y el PUT lo conectamos al TELI con COMPONENT OK.
-->
Configuremos las conexiones del S3 primero, vamos aquí al S3 y decimos que usar conexión
-->
existente, ya la tomamos por defecto. Vamos a las conexiones de los HDFS y le decimos
-->
usar conexión existente, y esta sí que hay que seleccionarla porque aunque haya una,
-->
hay que seleccionarla, y la del PUT también, la del PUT usar conexión existente,
-->
y este señor HDFS conecte. Perfecto, empecemos configuración, vamos con el HDFS EXIST,
-->
bueno vamos a escoger aquí una ruta para que sea más sencillo, después de cualquier archivo,
-->
después le cambio el nombre, después de la misma producción,
-->
ah no, aquí me toca colocar, carece de sentido,
-->
a primero el directorio, bueno el directorio, aquí perdón, aquí, ya, en el directorio por
-->
favor vamos a, ya tenemos la ruta, entonces la habíamos definido en un contexto el día de ayer,
-->
por favor váyase al job, a los contextos e importa por favor el contexto que está
-->
a nivel del proyecto, ok aquí, vamos ahora si nuevamente al THDFS EXIST y quito las comillas
-->
dobles que están en el directory porque va a ser referencia a una área de contexto,
-->
y si es de contexto nos toca definir entre comillas dobles, entonces voy a darle aquí
-->
control espacio y voy a correr ruta raíz,
-->
ahora la ruta vamos a buscar este archivo que se llama nba así todo la nba mayúscula
-->
underscore 2004, underscore shops, underscore .csv, exactamente así como está,
-->
y la pegamos en el relative.pub o el file name según la ruta relativa,
-->
vamos a ver cómo quedó esta parte,
-->
perfecto, listo, bueno, confiaremos la conexión entonces, vamos aquí,
-->
vamos a la línea que conecta el hdfs con el tsc3, doble clic a línea esa,
-->
doble clic a la línea, no le irá la línea,
-->
ahora cuando es condición tiene que ir a la perspectiva online y aquí esto antes del
-->
si está un hdfs exist, vayas en la perspectiva online y busque ese componente, aquí lo tengo,
-->
hdfs exist 1, expande por favor ese componente en la perspectiva de online,
-->
y aquí están varias variables para utilizar, está error mesas, está file exist,
-->
y está file name relative path, entonces tome ese file exist y lo suelta a este lado,
-->
la condición se debe cumplir o sea pregunto que debería entrar cuando existe o cuando no
-->
existe, cuando no existe es para descargarlo, entonces como esto es negativo, para negar en
-->
java leerás el símbolo que es admiración, dale admiración por favor para decir que va a
-->
ejecutar eso siempre y cuando sea negativo, o sea que el archivo no exista, perfecto,
-->
listo, te quedaría de esta forma por si acaso que alguno que están haciendo esta parte,
-->
no lo ha terminado, quedaría más o menos así, nada más le agregué este símbolo de aquí,
-->
y eso está así ya,
-->
vamos al ts3 get y le decimos el bucket donde va a descargar eso se llama noblepro,
-->
noblepro, de programación, y la key, vamos a copiar el nombre de archivo que lo tengo acá,
-->
que se llama nba, voy a copiar este archivo y lo voy a pegar aquí en la key y le agrego que
-->
ese señor está en la carpeta team, debe quedarte más o menos así, ya te lo muestro,
-->
así debe quedar,
-->
que lo busque en la carpeta team, bueno su carpeta más que todo, este archivo, bueno parece que ya,
-->
perfecto, aquí le voy a decir dónde lo va a descargar, entonces borro este señor,
-->
le doy context, ah todos lo teníamos verdad, se me había definido, sería,
-->
abro comillas dobles, c2 puntos, slash temporal, y lo voy a llamar exactamente igual como el
-->
original para no perderme, o sea que aquí la ruta puede variar, puede variar la ruta,
-->
en el caso mío temporal, o hagamos algo diferente, hagamos algo diferente,
-->
hagamos algo diferente, desen cuenta que estoy colocando una ruta absoluta,
-->
deje la ruta nada más sin el temporal, deje la ruta así, le quedaría así y él la va a agregar
-->
en el rupado que tiene el proyecto y me despreocupo de la ubicación, o sea que déjela así,
-->
ahí lo coloca ese de una ruta relativa y le va a colocar justamente donde el proyecto se vaya
-->
a ejecutar, perfecto 2004, ahí lo que va a hacer es eso,
-->
en el PUT, listo, le voy a decir directorio local,
-->
ahora me complico la vida, listo, NA 2004, CCV, nada más quedó así, listo,
-->
cuando que ahora me salga, listo, cuando que me salga error ahora, vamos a lo siguiente,
-->
vamos a ver si me sale error, voy al PUT, voy a copiar el nombre del archivo que estoy descargando,
-->
directorio local lo voy a dejar vacío porque va a tomar por referencia la ubicación en
-->
que esté el job, el directorio HFS, le borro las comillas, le doy context, context ruta raíz,
-->
este create lo voy a dejar ahí, porque create, porque la idea es que el archivo se descargue
-->
nada más una sola vez, por lo tanto si se carga una vez y me sale error por create es
-->
porque hay un error en el sí, algo hice malo, listo y ahora en el file max, la máscara,
-->
voy a buscar el archivo, voy a agregar aquí un elemento, no le agrego ruta nada más,
-->
vamos a ver si funciona así y el nuevo archivo se llama también así,
-->
nba under score 2004, listo y por último en el delete, vamos a pegar nada más el
-->
nombre del archivo porque supuestamente lo va a buscar en la ruta en que esté el proyecto,
-->
me preocupa nada más el PUT que el local va vacío, no sé si ese componente me causará
-->
error, bueno creo que ya nada más hay que ejecutarlo y ya listo, vamos a ejecutarlo
-->
para ver, estoy en análisis nba, ejecutar, primera vez que voy a ejecutar, debería subir
-->
el archivo, descargarlo, perdón, primero verificar si está, si no está lo descargo
-->
y lo pongo en hadut y después borro el archivo como tal,
-->
bueno está ejecutando, listo, bueno ahí no lo encontró, está descargando, ahí va el true,
-->
no le encontró el PUT, no lo encontró porque la ruta absoluta de este local
-->
debió, este no lo encontró aquí,
-->
no me salió el plan como quería,
-->
me tocaría colocar un directorio local,
-->
espere un momento e intento hacer algo aquí para no colocar la ruta absoluta,
-->
o sea confirmemos algo, este archivo tuvo que haber quedado en la ubicación donde
-->
ejecuta los jobs, espere un momento a ver, ese big data está metido aquí en archivos de programa,
-->
talent big data,
-->
workspace, local project, process, procesamiento,
-->
listo, no, ahí no, workspace, local project,
-->
qué raro,
-->
este archivo debería estar aquí, un momento, está interesante hablar, si no la colocamos,
-->
la colocamos absoluta y donde creo se descarga,
-->
bueno no me salió el tiro como lo quería pues, es que vean, es que seguramente lo que pasa es
-->
que ese TOS está en archivos de programa en Windows y no va a dejar escribir ahí,
-->
creo que ese es el problema que tiene, qué pena, me va a tocar colocar la ruta completa,
-->
sería C2 puntos,
-->
C2 puntos,
-->
Slash temporal, Slash temporal, Slash NBA,
-->
sí, aquí tuve un problema que seguramente es por el permiso de donde está la carpeta,
-->
permítanme y lo pruebo para ver,
-->
el local directorio lo voy a mandar a temporal,
-->
voy a ejecutar aquí para ver,
-->
detectó que no estaba, lo descargó y lo subió, voy a verificar para ver,
-->
ahí está, NBA 2004 shock y debió borrarlo de acá, es temporal,
-->
sí, listo,
-->
en setting,
-->
bien aclaro, no funcionó, la idea de la ubicación relativa es porque intentaba
-->
crear un archivo en archivo de programa y por seguridad que en Windows no lo dejó crear ahí,
-->
a ver, vamos a ver un par de errores, Bernardo veo que tiene errores, vamos a ver,
-->
bien, veamos por qué no existe, por qué sale ese error, porque intentó borrar un
-->
archivo que no existía, si no quieres que ese error salga, dale por favor doble clic en
-->
file deleted y ahí mira donde dice file on error, sí, viste donde dice file on error,
-->
como está chingado el que hace manda un error, pero por qué no lo borró,
-->
vete a tu get por favor, a tu TS3 get doble clic, a ver si la ruta ahora,
-->
cómprate la ruta ahora del ten, cómprate la ruta completa y la pegas en el file deleted,
-->
cómprate todo, cómprate todo un solo y lo pegas allá en el file deleted,
-->
todo completo porque sé que quiere borrar, listo, ahora haz lo siguiente,
-->
vete a tu Hadoop y borrate el archivo nba, borralo, ahí está, sí, ese que está ahí, delete,
-->
ejecuta, vamos a ver, como es la primera vez, vamos a ver, ok, ok, listo, vete a tu,
-->
por favor, vete a tu, sí, al Hadoop, dale F5 ahí y ahí está, ok, vamos a lo siguiente,
-->
ahí seguramente borró el temporal y ahí está, lo borró, vuelve a ejecutar tu job y no
-->
debería descargarlo, vale, ejecutar nuevamente run, esto ya empezó, date cuenta que ahí está
-->
false, te marcó false leaf, significa que no siguió el flujo normal hacia arriba porque ya
-->
lo encontró, bueno, quién más tiene errores, a ver, listo, Alejandro, vamos contigo,
-->
Alejandro, vamos a ver qué pasó, esto cargó, un momento que no cargó la imagen, ahora sí la
-->
cargó, veamos el error que tiene, no match file, listo, vete a tu ts3 get, por favor,
-->
ts3 get, doble clic, por favor, listo, listo, estamos dando temporal, vete a tu thdfs put,
-->
el put y ahí es donde dice local directory, apúntale a ten, dale clic ahí en el botón que
-->
está al final, el botón que está en la misma línea, ahí está, no, pero nada más la carpeta,
-->
la carpeta, nada más la carpeta, tengo, nada más vamos a colocar ahí la carpeta,
-->
déjalo borrar hasta el slash, ejecuta, bueno, ahí ya está preguntando si está en hadut,
-->
ahí no está, ok, listo, vete, debería estar ahí, listo, vuelvelo a ejecutar para ver,
-->
no debería descargarlo, ya voy, un momento, vuelvelo a ejecutar un momento y ya llego ya,
-->
está accediendo, ahorita ahí está false, no sigue la ejecución normal,
-->
¿Quién me habló por ahí? Héctor, vamos contigo Héctor, vamos a ver qué pasó,
-->
no false, que existiera, veamos la condición, vete la condición por favor,
-->
ah, porque ahí es negarlo, niégalo, es decir, para negarlo vete a la primera columna antes
-->
del paréntesis que inicia y colocas un signo de admiración, no, ¿eso es un pipe o
-->
admiración? ejecuta para ver, sí, te pareció ver, pareció un pipe, déjalo, si no,
-->
¿Qué error? Ejecuta para ver, porque a anteriormente estaba preguntando si existía y no existía,
-->
ahora si no existe, debería entrar en el if, vamos a ver, ahorita ahí está true,
-->
o sea no existe, ok, lo está descargando, lo está subiendo y listo, vete a, claro,
-->
tenía la condición invertida, ahí está, nada, porque lo ahorro exactamente, listo seguimos,
-->
ya es mi vamos a ver qué pasó
-->
ahora sí ya cargo ahí está diciendo porque tiene un doble comilla en el
-->
file max ese file más tiene doble comillas tiene dos comillas al inicio
-->
borre una de las comillas y tiene unas comillas al final doble comilla al
-->
final de ese mismo file max quito una comilla lo mismo lo tiene del otro lado
-->
tiene dos comillas que inician listo entra ahí
-->
ejecute para ver pues nos vamos para ver no listo no está ok y el delete
-->
vayase al file delete por favor file delete doble clic ahí ahí falla
-->
porque el archivo doble control vayase a su ts3 get
-->
y la ruta que va la ruta que va a borrar del es la de file temporal copia la
-->
ruta de toda la ruta que tiene ahí toda la copia
-->
y la pega en el file delete pégale ahí porque listo ahora haga lo siguiente
-->
vayase a su browser de hdud del f5 y borre el archivo nba
-->
para volver a ocultar para que nos borre todo listo listo delete
-->
y ejecute para ver perfecto ahora sí debe estar todo bien nos veamos lo
-->
siguiente ahora me tocaría hacer tres flujos significa que este señor lo
-->
voy a tomar
-->
este señor lo voy a copiar
-->
una vez sí
-->
ah no me copió con esto a colocar más sí dígame los tres al mismo tiempo no
-->
porque el componente borra de uno en uno
-->
es por la forma del componente voy a copiar nuevamente este señor
-->
que me lo copió también control c control v sí y ahora sí lo toma
-->
pero es que me está copiando los
-->
no me está jalando el yo así
-->
el primero pernesto vamos a ver el mes haya tenido verdad que sí no había
-->
visto bien
-->
vamos a ver
-->
a parece ser que no estás lo guiado al s3 de este momento a ver vete al al
-->
tse 3 al que es perdón tse 3 que está el doble clic
-->
al esto ahí en el bóquet en el que es tim porque también tiene la
-->
carpeta la subcarpeta tim equipo de inglés
-->
tim después de la comida doble es la exactamente intenta ahora para ver
-->
perfecto ahora sí bueno copiamos este señor y de
-->
rapidez vamos a copiar el archivo de entrada se va a llamar vamos a
-->
cambiar donde dice 2004 a 2005
-->
en el get vamos a cambiar nuevamente el 4 por el 5 en los dos lados
-->
aquí debía ser una verdadera contexto para que sea más sencillo pero ya
-->
en el puc cambio todo lo que tenga 2004 por 2005
-->
y en el file delete cambio todo lo que tenga 2004 por 2005
-->
nuevamente copia todos los componentes y va a copiar de 2004 a
-->
2006 es intento pegar este señor por acá
-->
que me devuelve bueno aquí
-->
aquí le dañé la presentación pero ya bueno aquí voy a coger y cambiar todo
-->
lo que tenga 2004 por 2006 todo lo que tenga
-->
2004 por 2006
-->
en el put lo que tenga 2004 por 2006
-->
y el delete todo lo que tenga 2004 por 2006
-->
aquí pude haber hecho un programita aquí un pequeño script que me leyera
-->
el archivo y mandaba por parámetro el s3 el valor del archivo que está
-->
en el s3 pero me quedaba como eran dos archivitos me quedaba creo que
-->
más fácil de esta forma que está escribiendo el script
-->
allá donde iba bueno bien en primer lugar para que usted quiera que se
-->
ejecute para le lo de mi muestro aquí por defecto se ejecutaría secuencial
-->
que fue la pregunta que me hizo ahí que se me escapó el nombre
-->
que aquí de la forma tradicional ejecutaría primero este primero después
-->
ejecutaría este y después ejecutaría este si quisiera que esto se ejecutara
-->
que es un buen caso para ejecutarlo de forma concurrente entonces yo voy por
-->
acá le digo esta le digo multiteat pero espera que hay un momento que
-->
para el caso en particular no me va a servir yo digo por qué
-->
me parece súper el caso que estamos analizando
-->
ya terminamos lo hizo imagínese lo siguiente ahora no lo agregué usted
-->
allá lo voy a hacer yo acá yo necesitaría ahora 3 hdfs no lo usted
-->
voy a hacerlo acá 3 a t hdfs input uno por cada archivo porque los voy a
-->
unir ahora es lo siguiente voy a tener este señor acá
-->
este señor aquí voy a tener entonces 1 2 y 3
-->
voy a ver no lo a usted acá porque así voy a unir esto con un te y unir que vivimos
-->
alguna vez y vamos a poner que vamos a dar aquí un telocrop voy a mandar aquí fila
-->
a usted y uní que espera para que me entienda la idea de por qué para este
-->
caso sería interesante analizar pero con esta con esta versión de esta
-->
revienta no me da para solucionar el caso y lo siguiente supongamos ahora
-->
que yo le diga a estos señores que se ejecuten de manera concurrente aclaro
-->
redefino no recuerdo la definición existe concepto de paralelismo significa
-->
que hay cuatro subyorks si cuando se aplica el concepto paralelismo cuando
-->
los cuatro subyorks se ejecutan exactamente al mismo tiempo eso
-->
depende directamente de que tan ocupado esté la máquina cuando hay
-->
concurrencia cuando de los cuatro se me ejecutan 2 3 no se ejecutan
-->
al tiempo eso es ese los conceptos pero veamos lo siguiente si si aquí
-->
aplicamos concurrencia vamos a suponer que él ejecuta primero este subyork
-->
este subyork que va a pasar que va él espera que estén descargados los
-->
archivos en hdud y no va a funcionar vamos a suponer que ejecuta este yo
-->
de aquí y después ejecuta este yo de acá listo va a encontrar este
-->
pero los demás no va a encontrar entonces que sería interesante
-->
primero no podría tampoco unir los tres subyorks cuando terminen por
-->
ejemplo yo nada más puedo hacer lo siguiente este es un subyork aquí
-->
este es un subyork acá
-->
ya no me deja porque yo nada más puedo conectar un subyork con un subyork no tres
-->
subyork al mismo no podría entonces aquí si hay una herramienta
-->
interesante una bueno no está aquí pero en el en el otro si está me
-->
recuerda cuando de pronto si lo alcanzamos la caso mostrar yo quisiera
-->
que estos tres se ejecutan al tiempo y después que se ejecuten los tres al
-->
tiempo mandar a ejecutar esto entonces aquí hay un componente
-->
hay un componente
-->
que se llama así se llama que es súper súper interesante se llama
-->
para le para le lisaís entonces este para el size conectaría los tres
-->
elementos esto de aquí y después del té para lisaís conecto este subyork
-->
o sea que estoy diciendo oye estos tres ejecutarlo en multitarea cuando
-->
los tres hayan terminado entonces si empieza acá entonces es interesante ese
-->
ese y me solucionaron el problema este de aquí no lo podía hacer porque este
-->
componente no está aquí si me toca secuencial ni modo
-->
secuencial porque este subyork depende de los tres de arriba entonces me
-->
toca secuencial porque ni modo no tengo herramientas entonces con esto
-->
este subyork con este de aquí este subyork con este de aquí
-->
con estos tres por favor y agregue tres input tres HDFS input por favor y les
-->
coloca la ruta bueno en primer lugar pues usa la conexión existente a
-->
todos
-->
y aquí agrega búscalo por favor cada uno de
-->
ellos perdón es que no están no los va a
-->
encontrar entonces voy a encontrar voy a buscar cualquier archivo y después lo
-->
ya había descargado uno entonces voy a tomar ese que descargué y le
-->
cambió los nombres en el dos lo cambió 2005
-->
tome el primero que descargaste es para el primero y después copia la ruta y
-->
le cambias 2004-2005
-->
si en el otro le cambia de 2005-2006
-->
bueno permítame y te confirmo
-->
vamos a descargarlo aquí mismo para ver desde aquí vamos a descargar este que
-->
no sé cómo está el formato una pregunta de todos modos
-->
voy a descargar y
-->
bien sería coma efectivamente y tienen encabezado efectivamente entonces me voy
-->
al nuevamente al píctata
-->
al píctata lo voy a hacer entonces
-->
y en el input le colocó que es separado por coma y tiene un híder de uno separado
-->
por coma
-->
híder de uno
-->
bueno me voy al input 2
-->
coma y híder de uno y al input 3
-->
me voy entonces hacia coma y híder de uno
-->
aquí este señor me está marcando algo raro
-->
no tiene esquema todavía le estoy llevando nos faltan los esquemas de entrada
-->
los esquemas de entrada no hacen falta entonces aplicamos el truco
-->
descargase por favor el archivo que ya subió a hadu del primero que ejecutamos que se llama
-->
nba 2004 shop para tomar la metadata del 2004 que es la misma para 2005 y 2006 es la misma
-->
la misma columna en pocas palabras descargase por favor entonces de hadu nba 2004 shop
-->
bueno y entonces ahora vamos al truco vamos aquí y definemos una metadata
-->
aquí en el delimited crear archivo delimitado vamos a llamarlo nba
-->
next y buscamos el archivo que tuvo que haber quedado en descarga seguramente descargas
-->
aquí está nba shop y el señor se encuentra separado por comas y tienen cabezados
-->
nba llamar al archivo y tienen cabezados y separado por coma
-->
perfecto listo damos aquí next
-->
creo que demoro más y exporto el metadata y después lo vuelvo a importar
-->
vamos a darle aquí finish mejor y lo hacemos de la segunda forma finish
-->
vayamos a la confesión del input 1 y donde dice esquema le damos click en el combo boss que
-->
está en build in finish repositorio y darle click ahí en el botoncito que está al
-->
del text file que genera y busque por favor el archivo delimitado nba y coge la
-->
metadata nba y automáticamente la agrega nba metadata ok y la agrega yes
-->
hace exactamente lo mismo con los tres elementos siguientes que sería 2 perdón input
-->
esquema vamos aquí repositorio
-->
listo
-->
file delimited
-->
nba metadata ok
-->
y me faltaría el h3
-->
esquema repositorio
-->
nba metadata ok aunque sale el error aliso que la conexión no lo he hecho aquí
-->
bueno aquí lo voy a guardar si ya la configuró intenté ejecutar para ver si no tenemos ningún error
-->
y ese archivo está el edad 20 grande si está si todo está bien no tiene error mándelo
-->
a un a un archivo nba porque si no demoramos más en mostrando esa salida y vamos a mandar
-->
hdfs output porque si no demora es muy grande el te y un hilo uno con el hdfs output separó por coma
-->
listo conexión existente con poner list separamos por coma
-->
y esta vez comprima los datos por favor e incluye un hider porque creo que ese archivo
-->
a pesar de que no tengo mucho espacio allá en ese y el nombre lo voy a llamar entonces nba underscore
-->
nba underscore unido
-->
a ver aquí
-->
sí para que no pesará tanto gracias bueno voy a darle si después se desconfunde uno
-->
sin extensión nba unido porque se condenó a pesar yo tengo mucho espacio voy a detenerlo
-->
un momento y lo voy a volver a ejecutar ya terminó
-->
bien con esto voy a agregar un nuevo componente que pueda ayudar a solucionar
-->
un par de problemas en pocas palabras voy a ver cuánto quedó este señor nba unido
-->
nba unido el original los cuya quisi cumplió bastante
-->
cumplió bastante porque cada uno pesaba 36 megas y el unido quedó en 9.86 megabytes por segundo
-->
bueno vamos entonces bueno dejamos hasta aquí un momento y vamos a almorzar y volvemos
-->
entonces en una horita ok para descansar un momento y volvemos en una hora para terminar
-->
este ejemplo y agregar un último componente aquí que tengo para el día de hoy entonces
-->
dejamos hasta aquí y regresamos en una hora listo bueno buen provecho