# README - Uso de ficheros Parquet de microdatos con diseño de registro embebido ================================================================================ 1. DESCRIPCIÓN GENERAL ================================================================================ Los ficheros `.parquet` incluidos en los microdatos publicados por el INE contienen: 1. Una tabla de microdatos columnar en formato Apache Parquet. 2. Un diseño de registro en formato JSON embebido dentro de los metadatos del esquema Parquet. El JSON se almacena bajo la clave: ``` record_layout ``` Este diseño de registro permite describir variables, formatos, etiquetas, longitudes, tipos u otra documentación estructural del fichero. ================================================================================ 2. SOFTWARE COMPATIBLE ====================== Los ficheros pueden abrirse desde múltiples herramientas: * R / RStudio * Python * Apache Spark * DuckDB * VS Code * DBeaver * Tableau * Power BI * Excel (mediante conectores) * Herramientas Arrow/Parquet compatibles ================================================================================ 3. USO EN R / RSTUDIO ===================== Instalar paquetes necesarios: ``` install.packages("arrow") install.packages("jsonlite") install.packages("listviewer") ``` Ejemplo completo: --- library(arrow) library(jsonlite) # Ruta al fichero parquet ruta_parquet <- "C:/ruta/al/fichero.parquet" # Leer como tabla Arrow (MUY IMPORTANTE) tabla_arrow <- arrow::read_parquet( ruta_parquet, as_data_frame = FALSE ) # ============================== # DATOS # ============================== tabla_microdatos <- as.data.frame(tabla_arrow) # ============================== # METADATOS # ============================== # Visualización interactiva del JSON con el diseño de registro library(listviewer) jsonedit(json_guardado) --- NOTA IMPORTANTE: Debe utilizarse: ``` as_data_frame = FALSE ``` porque si el Parquet se carga directamente como data.frame pueden perderse los metadatos internos del esquema. ================================================================================ 4. USO EN PYTHON ================ Instalar dependencias: ``` pip install pyarrow pandas ``` Ejemplo completo: --- import pyarrow.parquet as pq import json ruta = r"C:\ruta\al\fichero.parquet" # Lectura parquet tabla = pq.read_table(ruta) # ============================== # DATOS # ============================== print("Dimensiones:") print(tabla.num_rows, "filas") print(tabla.num_columns, "columnas") print(tabla.to_pandas().head()) # ============================== # METADATOS # ============================== metadata = tabla.schema.metadata if metadata and b"record_layout" in metadata: ``` print("\nJSON encontrado correctamente\n") json_bytes = metadata[b"record_layout"] json_texto = json_bytes.decode("utf-8") json_obj = json.loads(json_texto) print(json.dumps(json_obj, indent=2)[:1000]) ``` else: ``` print("No se encontró 'record_layout'") ``` ================================================================================ 5. RECOMENDACIONES =================== * Utilizar Arrow/PyArrow para preservar metadatos. * El formato Parquet está optimizado para: * grandes volúmenes * lectura columnar * compresión eficiente * interoperabilidad analítica ================================================================================ 6. TECNOLOGÍAS UTILIZADAS ========================== * Apache Parquet * Apache Arrow * PyArrow * R Arrow * JSON