Buscar este blog

jueves, 31 de marzo de 2022

Unificar 2 csv en UNO - linux

                       

                       

nombreFicheroAux="informe.csv"

nombreFichero="INFORME_"$FECHA_HORA_FICHERO

nombreFicheroIso=$nombreFichero".csv"

hdfs dfs -text  $RUTA_DESCARGA_FICHERO/* >> $nombreFicheroAux

(en RUTA_DESCARGA_FICHERO, se encuentra los datos que vamos a volcar en $nombreFicheroAux)

cat $RUTA_INFORME_CONSULTA"cabecera_marca.csv" tail +2 $nombreFicheroAux >> $nombreFichero


(Con el comando cat, cogemos la cabecera y la metemos en el $nombreFicheroAux junto con el "body(con los datos)")

iconv -f utf-8 -t iso-8859-1 $nombreFichero -o $nombreFicheroIso


Guardar este nombreFicheroIso en hdfs o aws s3.

miércoles, 30 de marzo de 2022

PIG LATIN

Eliminar los duplicados de un archivo en HDFS con PIG. 

informePig = LOAD $entradaInfUno USING PigStorage(';') as (CAMPO1:chararray,CAMPO2:chararray); 

informeSinDuplicados = DISTINCT informePig; 
store informeSinDuplicados INTO '$salidaInfUno' USING PigStorage(';'); 

 Importante las comillas en $salidaInfUno. 

 Para la llamada al PIG. 

 pig -param entradaInfUno=$rutaficherosentrada -param salidaInfUno=$rutaficherossalida -file $rutadelarchivopig 

 Eliminar los duplicados, y en el caso de existir varios, quedarnos con fecha mayor.

 informePig = LOAD $entradaInfDos USING PigStorage(';') as (CAMPO1:chararray,CAMPO2:chararray);; 

 informe = DISTINCT informePig; agrupados = group informe by (CAMPO1:chararray,CAMPO2:chararray); no meter la fecha. 

 res = foreach agrupados 
sorted = order informe BY fechaIni ASC; 
top = limit sorted 1; 
generate flatten(top); 
}; 

 store res INTO $salidaInfDos USING PigStorage(';');