Importar CSV desde un fichero o una URL utilizando csvgen
¡Hola desarrolladores!
A veces necesitamos importar datos CSV de forma programática en InterSystems IRIS desde un fichero o una URL. Y esperamos además que automáticamente se genere una clase con los tipos de datos adecuados y los datos importados.
Echadle un ojo al módulo csvgen en Open Exchange que hace exactamente eso que hemos descrito.
Si necesitas importar un fichero CSV en IRIS puedes hacer esto:
USER>do ##class(community.csvgen).Generate("/usr/data/titanic.csv",,"Data.Titanic")
Class name: Data.Titanic
Header: PassengerId INTEGER,Survived INTEGER,Pclass INTEGER,Name VARCHAR(250),Sex VARCHAR(250),Age INTEGER,SibSp INTEGER,Parch INTEGER,Ticket VARCHAR(250),Fare MONEY,Cabin VARCHAR(250),Embarked VARCHAR(250)
Records imported: 891
USER>
O si los datos CSV están publicados en internet, por ejemplo Datos COVID-19 en GitHub, puedes hacer esto otro:
USER>d ##class(community.csvgen).GenerateFromURL("https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_daily_reports/05-29-2020.csv",",","Data.Covid19")
Class name: Data.Covid19
Header: FIPS INTEGER,Admin2 VARCHAR(250),Province_State VARCHAR(250),Country_Region VARCHAR(250),Last_Update DATE,Lat MONEY,Long_ DOUBLE,Confirmed INTEGER,Deaths INTEGER,Recovered INTEGER,Active INTEGER,Combined_Key VARCHAR(250),Incidence_Rate DOUBLE,Case-Fatality_Ratio DOUBLE
Records imported: 3522
USER>
Instalación
Puedes instalar el módulo directamente utilizando ZPM:
USER>zpm
zpm:USER>install csvgen
El módulo csvgen en realidad es un envoltorio del método CSV2CLASS .
Si os animáis a colaborar, ¡cualquier mejora es bienvenida!