def process(self): df_datos_PIB_ine = PIBProcessor.spark.read.format("mongo").option( "uri", "mongodb://localhost/TFM_Jfernandez.PIB_INE").load() df_datos_PIB_ine.registerTempTable("PIB_INE") df_datos_PIB_ine_base = PIBProcessor.sql.sql(''' SELECT Nombre as nombre_variable, Unidad.Nombre as unidad, Escala.Nombre as escala, datos.TipoDato.Nombre as povDef, datos.Fecha as fecha_ini_periodo, add_months(datos.Fecha,3) as fecha_fin_periodo, datos.NombrePeriodo as Periodo, datos.Valor as valor FROM PIB_INE LATERAL VIEW explode(Data) as datos ''') get_category_udf = udf(lambda x: self.getCategoryFromNombre(x), StringType()) get_subcategory_udf = udf(lambda x: self.getSubCategoryFromNombre(x), StringType()) get_base_comparacion_udf = udf(lambda x: self.getBaseComparacion(x), StringType()) split_col = split(df_datos_PIB_ine_base['nombre_variable'], '\\.') df_datos_PIB_ine_base = df_datos_PIB_ine_base.withColumn( 'ambito', split_col.getItem(0)) df_datos_PIB_ine_base = df_datos_PIB_ine_base.withColumn( 'tipo_dato', split_col.getItem(1)) df_datos_PIB_ine_base = df_datos_PIB_ine_base.withColumn( 'categoria', get_category_udf(df_datos_PIB_ine_base.nombre_variable)) df_datos_PIB_ine_base = df_datos_PIB_ine_base.withColumn( 'subCategoria', get_subcategory_udf(df_datos_PIB_ine_base.nombre_variable)) df_datos_PIB_ine_base = df_datos_PIB_ine_base.withColumn( 'base_comparado', get_base_comparacion_udf(df_datos_PIB_ine_base.nombre_variable)) columns_to_drop = ['nombre_variable'] df_datos_PIB_ine_base = df_datos_PIB_ine_base\ .select([column for column in df_datos_PIB_ine_base.columns if column not in columns_to_drop])\ .where(df_datos_PIB_ine_base.tipo_dato == ' Datos ajustados de estacionalidad y calendario') df_datos_PIB_ine_base.show(20, False) SQLUtil.writeSparkDf(df_datos_PIB_ine_base, "datos_pib_ine", True) df_datos_PIB_ine_base.unpersist(blocking=True)
def process(self): df_datos_pernoc_ine = PernoctacionesProcessor.spark.read.format( "mongo").option( "uri", "mongodb://localhost/TFM_Jfernandez.PERNOC_INE").load() df_datos_pernoc_ine.registerTempTable("PERNOC_INE") df_datos_pernoc_ine_base = PernoctacionesProcessor.sql.sql(''' SELECT Nombre as nombre_variable, Unidad.Nombre as unidad, Escala.Nombre as escala, datos.TipoDato.Nombre as tipoDato, datos.NombrePeriodo as Periodo, datos.Valor as valor FROM PERNOC_INE LATERAL VIEW explode(Data) as datos WHERE datos.Anyo = 2020 ''') split_col = split(df_datos_pernoc_ine_base['nombre_variable'], '\\.') df_datos_pernoc_ine_base = df_datos_pernoc_ine_base.withColumn( 'region', split_col.getItem(0)) df_datos_pernoc_ine_base = df_datos_pernoc_ine_base.withColumn( 'origen_viajero', split_col.getItem(2)) split_col = split(df_datos_pernoc_ine_base['Periodo'], 'M') df_datos_pernoc_ine_base = df_datos_pernoc_ine_base.withColumn( 'anho', split_col.getItem(0).cast(IntegerType())) df_datos_pernoc_ine_base = df_datos_pernoc_ine_base.withColumn( 'mes', split_col.getItem(1).cast(IntegerType())) columns_to_drop = ['nombre_variable', 'escala', 'Periodo'] df_datos_pernoc_ine_base = df_datos_pernoc_ine_base.select([ column for column in df_datos_pernoc_ine_base.columns if column not in columns_to_drop ]) df_datos_pernoc_ine_base.show(20, False) SQLUtil.writeSparkDf(df_datos_pernoc_ine_base, "datos_pernoctaciones_ine", True) df_datos_pernoc_ine_base.unpersist(blocking=True)
def process(self): df_datos_empleo_ine = self.spark.read.format("mongo").option( "uri", "mongodb://localhost/TFM_Jfernandez.EMPLEO_INE").load() df_datos_empleo_ine.registerTempTable("EMPLEO_INE") df_datos_empleo_ine_base = self.sql.sql(''' SELECT Nombre as nombre_variable, Unidad.Nombre as unidad, Escala.Nombre as escala, datos.TipoDato.Nombre as tipoDato, datos.NombrePeriodo as Periodo, datos.Valor as valor FROM EMPLEO_INE LATERAL VIEW explode(Data) as datos WHERE Nombre like '%Dato base%' ''') df_datos_empleo_ine_base.show(20, False) SQLUtil.writeSparkDf(df_datos_empleo_ine_base, "datos_empleo_ine", True)
def process(self): df_registro_defunciones = SQLUtil.readSparkDf(self.spark, "registro_defunciones") df_comunidades_autonomas = SQLUtil.readSparkDf( self.spark, "comunidades_autonomas") df_mapeos = self.spark.read.load(self.mapeo_codigos, format="csv", sep=";", inferSchema="true", header="true") df_mapeos.head() df_mapeos.show(n=30) df_comunidades_autonomas.show(n=30) df_registro_defunciones.registerTempTable("registro_defunciones") df_comunidades_autonomas.registerTempTable("comunidades_autonomas") df_comunidades_autonomas\ .withColumn("latitud", df_comunidades_autonomas["latitud"].cast(FloatType()))\ .withColumn("longitud", df_comunidades_autonomas["longitud"].cast(FloatType())) df_mapeos.registerTempTable("mapeos") df_defunciones_con_coordenadas = self.sql.sql(''' SELECT rd.*, ca.* FROM registro_defunciones rd JOIN mapeos map on rd.comunidad = map.nombre JOIN comunidades_autonomas ca on map.codigo = ca.codigo ''') df_defunciones_con_coordenadas = df_defunciones_con_coordenadas.where( df_defunciones_con_coordenadas.fecha_defuncion >= self.fecha_corte) df_defunciones_con_coordenadas = df_defunciones_con_coordenadas\ .withColumn("latitud", df_defunciones_con_coordenadas["latitud"].cast(FloatType()))\ .withColumn("longitud", df_defunciones_con_coordenadas["longitud"].cast(FloatType())) SQLUtil.writeSparkDf(df_defunciones_con_coordenadas, "registro_defunciones", True) df_registro_defunciones.unpersist(blocking=True)
def process(self): df_lecturas = SQLUtil.readSparkDf(self.spark, "calidad_aire") SQLUtil.writeSparkDf(df_lecturas, "calidad_aire", True) df_lecturas.unpersist(blocking=True)
def process(self): df_madrid_calle30 = SQLUtil.readSparkDf(self.spark, MadridCalle30DataProcessor.TABLA_TRAFICO_MC30) df_madrid_calle30 = df_madrid_calle30.where(df_madrid_calle30.Fecha >= self.fecha_corte) SQLUtil.writeSparkDf(df_madrid_calle30, MadridCalle30DataProcessor.TABLA_TRAFICO_MC30, True) df_madrid_calle30.unpersist(blocking=True)
def process(self): df_cotizaciones = SQLUtil.readSparkDf(self.spark, IBEX35DataProcessor.IBEX35_data_table) SQLUtil.writeSparkDf(df_cotizaciones, "cotizaciones", True) df_cotizaciones.unpersist(blocking=True)
def process(self): df_datos_covid = SQLUtil.readSparkDf( self.spark, WorldCovidProcessor.datos_covid_table) SQLUtil.writeSparkDf(df_datos_covid, WorldCovidProcessor.datos_covid_table, True) df_datos_covid.unpersist(blocking=True)