Open pipetrunks opened 3 years ago
Buenas tardes,
Muchas gracias por reportar el issue con el conjunto de datos del Portal de Datos Abiertos con código API 'rpmr-utcd'. En efecto, es un conjunto bastante grande y el cálculo de métricas de calidad es demorado y consume mucha memoria. Estamos en la evaluación del código para la optimización de los tiempos y eliminar el problema de la memoria.
Avisaremos cuando se tengan avances
Cordial saludo
Equipo UCD
Hola, gracias por la librería. Cuando intento hacer un reporte de calidad de un dataset grande, se presentan muchos problemas. Solucioné lo del token, pero lograr evaluar la calidad de los datos (lo hice como prueba para ver los limites y si salía la evaluación de las filas) es, como esperaba, un proceso que toma mucho tiempo y consume muchos recursos (un poco más de 32 Gigas de RAM en su pico más alto, utilizó cerca de 9 núcleos de procesador y una GPU Radeon AMD RX 5700 XT al 20%. Envío el código utilizado.
api_id = 'rpmr-utcd' token = 'xxxxxxxx' RowLimit=1000000000
client = Socrata("www.datos.gov.co", app_token=token) MetaData = client.get_metadata(api_id)
Data = client.get(api_id, limit=RowLimit) DS = pd.DataFrame.from_records(Data) Vars = list(DS.columns) Types = DS.dtypes generar_reporte(df = DS, titulo='Perfilamiento datos SECOP I - Colombia', archivo='perfilamiento.html')
La base de datos no tiene columnas numéricas
Traceback (most recent call last):
File "", line 12, in
generar_reporte(df = DS, titulo='Perfilamiento datos SECOP I - Colombia', archivo='perfilamiento.html')
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\leila\reporte.py", line 172, in generar_reporte dataframe_duplic_colum = base.EmparejamientoDuplicados(col=True)
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\leila\calidad_datos.py", line 366, in EmparejamientoDuplicados dupli = base.T.duplicated(keep=False)
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\frame.py", line 2711, in transpose result = self._constructor(
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\frame.py", line 464, in init mgr = init_ndarray(data, index, columns, dtype=dtype, copy=copy)
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\internals\construction.py", line 210, in init_ndarray return create_block_manager_from_blocks(block_values, [columns, index])
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\internals\managers.py", line 1658, in create_block_manager_from_blocks mgr._consolidate_inplace()
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\internals\managers.py", line 945, in _consolidate_inplace self.blocks = tuple(_consolidate(self.blocks))
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\internals\managers.py", line 1886, in _consolidate merged_blocks = _merge_blocks(
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\pandas\core\internals\blocks.py", line 3099, in _merge_blocks new_values = np.vstack([b.values for b in blocks])
File "<__array_function__ internals>", line 5, in vstack
File "C:\ProgramData\Anaconda3\envs\Leila\lib\site-packages\numpy\core\shape_base.py", line 283, in vstack return _nx.concatenate(arrs, 0)
File "<__array_function__ internals>", line 5, in concatenate
MemoryError: Unable to allocate 974. MiB for an array with shape (9816364, 13) and data type object