Carga de archivos Parquet en IRIS
Hola colegas,
Hace unos días me surgio el requerimiento de cargar un archivo parquet, tal y como viene a una tabla en IRIS, así que desarrolló este classmethod que gatilla la carga solo indicando la ruta y nombre del archivo y el nombre de la tabla destino (en el mismo espacio de nombres). Para esto, escribí un pequeño código en Python que requiere las librerías: Pandas, pyarrow y fastparquet, las cuales deben instalar en el directorio de instalación de IRIS según su instalación, en mi caso el comando es:
instalación de pip3 --target /usr/irissys/mgr/python/ pandas pyarrow fastparquet
Para cargar los datos se deberán entregar los siguientes parametros
archivo: ruta completa al archivo parquet a cargar /var/data/archivo.parquet tabla: tabla en la cual se cargaran los datos
desde el terminal:
do ##class(testing.python).cargaParquet("/var/data/files/testing-ndoc.parquet","testing.ndoc")
Espero les sea de utilidad.
Class testing.python Extends %RegisteredObject
{
ClassMethod cargaParquet(parquet, tabla) [ Language = python ]
{
try:
import pandas as pd
import iris
parquet_file= parquet
df = pd.read_parquet(parquet_file)
i=0
linea=""
valores=""
sql=""
max_index = len(df)
for x in df.columns:
linea = linea + x + ","
linea = linea.replace("_","")[:-1]
sql="insert into "+ tabla +" (" + linea + ")"
while i<max_index:
for x in df.columns:
valores = valores + "'" + str(df.at[i,x]) + "',"
valores = " values("+ valores[:-1] +")"
tsc = iris.sql.exec(sql + valores)
valores=""
i+=1
except:
print("error de carga de registro " +i)
}
}
Comments
¡Gracias por el artículo, Joel!