Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema con generar reportes para datasets grandes #1

Open
pipetrunks opened this issue Sep 7, 2020 · 1 comment
Open

Problema con generar reportes para datasets grandes #1

pipetrunks opened this issue Sep 7, 2020 · 1 comment

Comments

@pipetrunks
Copy link

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

@pablomonhel
Copy link
Collaborator

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

ucd-dnp pushed a commit that referenced this issue Feb 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants