def trace_error(exctype, value, tb): obj_traceback = Traceback(tipo=exctype, valor=value, traceback=tb) dto_logger = Logger(txt_trace=tb, fase_etl='', nom_script='', fec_proceso=Util.obt_fecha_actual(), estatus='') dto_logger.fec_proceso = Util.obt_fecha_actual() dto_logger.txt_trace = tb obj_logger_txt = LoggerTxt(obj_traceback, dto_logger) obj_logger_txt.persiste()
def extrae(self): dao_anuncio = adminDao.AdministradorDao(daoCon.DaoEstadisticaAnuncio, self.dto_credenciales).dao detalle_de_anuncios = dao_anuncio.obten() detalle_de_anuncios['data_date_part'] = Util.obt_fecha_actual() self.anuncios = Util.pandas_a_spark(self.sql_context, detalle_de_anuncios) # Registro de funciones UDF self.sql_context.udf.register("excluye_carac_espec", lambda x: elimina_carac_especial(x)) self.sql_context.udf.register("obt_nom_atributo", lambda x: obt_nom_atributo(x)) self.sql_context.udf.register("obt_val_atributo", lambda x: obt_val_atributo(x))
def transforma(self): df_acciones = self.obten_acciones(self.anuncios) df_costo_de_acciones = self.obten_costo_por_accion(self.anuncios) self.acciones_y_costos_de_anuncios = df_acciones \ .join(df_costo_de_acciones, (df_acciones.AD_ID == df_costo_de_acciones.AD_ID) & (df_acciones.ATRIBUTO == df_costo_de_acciones.ATRIBUTO)) \ .select(df_acciones.CAMPAIGN_ID, df_acciones.AD_ID, df_acciones.ATRIBUTO.alias('ACTION'), df_acciones.VALOR.alias('VALUE'), df_costo_de_acciones.VALOR.alias("COST_VALUE")).\ withColumn('DATA_DATE_PART', lit(Util.obt_fecha_actual())) self.acciones_y_costos_de_anuncios.show()
def obten(self): fragmentos_desgloses = list() grupo_de_consultas = self.obten_grupo_de_consultas_curl() for nom_desglose, consulta_desglose in grupo_de_consultas: json_desglose = self.ejecuta_curl(consulta_desglose) dict_desglose = json.loads(json_desglose) if 'data' in dict_desglose: df_desglose = pd.DataFrame(dict_desglose['data']) df_desglose['nom_desglose'] = nom_desglose df_desglose['data_date_part'] = Util.obt_fecha_actual() fragmentos_desgloses.append(df_desglose) total_de_desgloses = pd.concat(fragmentos_desgloses, axis=0, ignore_index=True, sort=False) return total_de_desgloses
def extrae(self): dao_anuncio = adminDao.AdministradorDao(daoCon.DAOAnuncio, self.dto_credenciales).dao self.anuncios = dao_anuncio.obten() self.anuncios['data_date_part'] = Util.obt_fecha_actual()
id_app='', id_pagina='', app_secreta='') nom_archivo = Util.lee_fichero_campanias() dao_conf_campania = adminDao.AdministradorDao(DaoProp.DaoExtraccionProp, nom_archivo, 'campania').dao dict_columnas = dao_conf_campania.obten() # Contador contador = 0 for anuncio in grupo_de_anuncios.values.tolist(): if contador == 4: nom_archivo = 'hist_anuncios_' + Util.obt_fecha_actual() + '.csv' print(nom_archivo) dfrm_total_anuncios = union_de_drfms_pandas(gpo_anunc_con_detalle) df_sp_total_anuncios = Util.pandas_a_spark(sql_context, dfrm_total_anuncios) df_sp_total_anuncios.withColumnRenamed("WEBSITE_CTR", "SITIOWEB_CTR") df_sp_total_anuncios.coalesce(1).write.format( 'com.databricks.spark.csv').save(nom_archivo, header='true') Util.carga(df_sp_total_anuncios) os.system("tail -n +5 total_anuncios.csv >> " "total_anuncios2.csv && rm total_anuncios.csv " "&& mv total_anuncios2.csv total_anuncios.csv") print("Finalizo el proceso...") sys.exit(0)
def concentra_todos_anuncios(self, grupo_campanias): df_total_campanias = pd.concat(grupo_campanias, ignore_index=True, sort=True) df_total_campanias['data_date_part'] = Util.obt_fecha_actual() return df_total_campanias
def extrae(self): dao_campania = adminDao.AdministradorDao(daoCon.DAOCampania, self.dto_credenciales).dao self.detalle_de_campanias = dao_campania.obten() self.detalle_de_campanias['data_date_part'] = Util.obt_fecha_actual()