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

sqlp: not able to create a rigth parquet output #1647

Closed
aborruso opened this issue Mar 5, 2024 · 3 comments · Fixed by #1648
Closed

sqlp: not able to create a rigth parquet output #1647

aborruso opened this issue Mar 5, 2024 · 3 comments · Fixed by #1648
Labels
bug Something isn't working

Comments

@aborruso
Copy link
Contributor

aborruso commented Mar 5, 2024

Hi,
I'm testing sqlp using this CSV: Opendata2.csv.gz

I create a parquet output in this way

qsv sqlp -d ";" Opendata2.csv "select * from Opendata2" --format parquet --output data.parquet --compression zstd

I have a parquet output, but it seems that everything is in one column, that it was not useful to set the field separator using -d ";".

I'm using 'qsv 0.123.0-mimalloc-apply;fetch;foreach;python-3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0];to;polars-0.38.1;self_update-20-20;6.09 GiB-1.22 GiB-6.25 GiB-7.61 GiB (x86_64-unknown-linux-gnu compiled with Rust 1.76.0) compiled'

Thank you

image

@aborruso aborruso changed the title sqlp: not able to read properly parquet output sqlp: not able to create a rigth parquet output Mar 5, 2024
@jqnatividad
Copy link
Owner

jqnatividad commented Mar 6, 2024

Hi @aborruso , this is because the automatic read_csv() fast path optimization doesn't support custom delimiters.

The workaround is to enable --no-optimizations to skip the fast path optimization and read in the CSV first into the SQL context which will honor your custom --delimiter setting.

/usr/bin/time qsv sqlp -d ";" Opendata2.csv "select * from Opendata2" --no-optimizations --format parquet --output data.parquet --compression zstd 
(71710, 91)
        1.17 real         1.11 user         0.24 sys

ls -lh data.parquet 
-rw-r--r--  1 jqnatividad  staff    13M Mar  5 22:00 data.parquet
parquet head -n 2 data.parquet
{"CUP": "D12F09006650001", "DESCRIZIONE_SINTETICA_CUP": "LIV0109-Ramondetti Livio imp FTV 4,44kWp* *** *Realizzazione Impianto Fotovoltaico* *** ", "ANNO_DECISIONE": 2009, "STATO_PROGETTO": "ATTIVO", "COSTO_PROGETTO": 51098, "FINANZIAMENTO_PROGETTO": 51098, "CODICE_STATO": 5, "STATO": "ITALIA", "CODICE_AREA_GEOGRAFICA": "NO", "AREA_GEOGRAFICA": "NORD-OVEST", "CODICE_REGIONE": 1, "REGIONE": "PIEMONTE", "CODICE_PROVINCIA": 4, "SIGLA_PROVINCIA": "CN", "PROVINCIA": "CUNEO", "CODICE_COMUNE": 4068, "COMUNE": "CHIUSA DI PESIO", "SOGGETTO_TITOLARE": "GESTORE DEI SERVIZI ENERGETICI - GSE S.P.A.", "PIVA_CODFISCALE_SOG_TITOLARE": "05754381001", "INDIRIZZO_SOG_TITOLARE": "MARESCIALLO PILSUDSKI", "TIPO_INDIRIZZO_SOG_TITOLARE": "VIALE", "NUM_CIVICO_SOG_TITOLARE": "92", "LOCALITA_SOG_TITOLARE": "ROMA", "CAP_SOGGETTO_TITOLARE": "00197", "COMUNE_SOGGETTO_TITOLARE": "ROMA", "CODICE_COMUNE_SOGG_TITOLARE": 58091, "CODICE_SOTTOCATEG_SOGGETTO": 5, "SOTTOCATEGORIA_SOGGETTO": "GESTIONE RETI ENERGETICHE", "CODICE_CATEGORIA_SOGGETTO": 999, "CATEGORIA_SOGGETTO": "CONCESSIONARI E IMPRESE DI GESTIONE RETI E INFRASTRUTTURE", "CODICE_AREA_SOGGETTO": "AA", "AREA_SOGGETTO": "ALTRO", "CODICE_NATURA_INTERVENTO": 6, "NATURA_INTERVENTO": "CONCESSIONE DI CONTRIBUTI AD ALTRI SOGGETTI (DIVERSI DA UNITA' PRODUTTIVE)", "COD_NATURA_DIPE": "CS", "NATURA_DIPE": "Contributi (per calamità e altro)", "CODICE_TIPO_INTERVENTO": 8, "TIPOLOGIA_INTERVENTO": "MANUTENZIONE STRAORDINARIA", "CODICE_AREA_INTERVENTO": 1, "AREA_INTERVENTO": "IMMOBILI", "CODICE_SETTORE_INTERVENTO": 5, "SETTORE_INTERVENTO": "INFRASTRUTTURE SOCIALI", "CODICE_SOTTOSETTORE_INTERVENTO": 10, "SOTTOSETTORE_INTERVENTO": "ABITATIVE", "CODICE_CATEGORIA_INTERVENTO": 999, "CATEGORIA_INTERVENTO": "ALTRI EDIFICI ABITATIVI", "SOGGETTO_RICHIEDENTE": "GESTORE DEI SERVIZI ENERGETICI - GSE S.P.A.", "TIPOLOGIA_CUP": "NORMALE", "DESCRIZIONE_INTERVENTO": "Realizzazione Impianto Fotovoltaico", "DENO_IMPRESA_STABILIMENTO": "**********", "PIVA_CF_BENEFICIARIO": "**********", "DENO_IMPRESA_STABILIMENTO_PREC": null, "DENOMINAZIONE_BENEFICIARIO": "**********", "STRUTTURA_INFRASTRUTTURA": "LIV0109-Ramondetti Livio imp FTV 4,44kWp", "INDIRIZZO_INTERVENTO": "**********", "NUMERO_DELIBERA_CIPE": "DATO NON PRESENTE", "ANNO_DELIBERA": "DATO NON PRESENTE", "FLAG_LEGGE_OBIETTIVO": "DATO NON PRESENTE", "FLAG_TIPO_GENERICO": "NO", "CUP_IN_RELAZIONE": null, "RUOLO_IN_RELAZIONE": null, "DESC_TIPO_RELAZIONE": null, "DATA_ULTIMA_MODIFICA_SSC": null, "DATA_ULTIMA_MODIFICA_UTENTE": null, "DATA_CHIUSURA_REVOCA": null, "CODICE_LOCALE_PROGETTO": "237675", "CODICE_STRUMENTO_PROGRAM": 0, "STRUMENTO_PROGRAMMAZIONE": "ASSENTE", "CODICE_COPERTURA_FINANZIARIA": 1, "COPERTURA_FINANZIARIA": "STATALE", "FINANZA_PROGETTO": "DATO NON PRESENTE", "SPONSORIZZAZIONI": "NON PREVISTE", "ALTRE_INFORMAZIONI": null, "DATA_GENERAZIONE_CUP": "18-JUN-2013", "CONTROLLO_QUALITA": "Il corredo informativo del CUP non è stato visionato", "CUP_MASTER": null, "RAGIONI_COLLEGAMENTO": null, "LINK_OPENCOESIONE": null, "LINK_SCUOLE_SICURE": null, "COD_SEZIONE_ATECO": "O", "SEZIONE_ATECO": "AMMINISTRAZIONE PUBBLICA E DIFESA; ASSICURAZIONE SOCIALE OBBLIGATORIA", "COD_DIVISIONE_ATECO": 84, "DIVISIONE_ATECO": "AMMINISTRAZIONE PUBBLICA E DIFESA; ASSICURAZIONE SOCIALE OBBLIGATORIA", "COD_GRUPPO_ATECO": "84.1", "GRUPPO_ATECO": "AMMINISTRAZIONE PUBBLICA: AMMINISTRAZIONE GENERALE, ECONOMICA E SOCIALE", "COD_CLASSE_ATECO": null, "CLASSE_ATECO": null, "COD_CATEGORIA_ATECO": null, "CATEGORIA_ATECO": null, "COD_SOTTOCATEG_ATECO": null, "SOTTOCATEGORIA_ATECO": null}
{"CUP": "E33J09053640009", "DESCRIZIONE_SINTETICA_CUP": "AGENZIA PER LA FORMAZIONE LORIENTAMENTO ED IL LAVORO DELLA PROVINCIA DI MONZA E DELLA BRIANZA* *** *Richiesta contributo Dote Lavoro* *** ", "ANNO_DECISIONE": 2009, "STATO_PROGETTO": "ATTIVO", "COSTO_PROGETTO": 860, "FINANZIAMENTO_PROGETTO": 860, "CODICE_STATO": 5, "STATO": "ITALIA", "CODICE_AREA_GEOGRAFICA": "NO", "AREA_GEOGRAFICA": "NORD-OVEST", "CODICE_REGIONE": 3, "REGIONE": "LOMBARDIA", "CODICE_PROVINCIA": 108, "SIGLA_PROVINCIA": "MB", "PROVINCIA": "MONZA E DELLA BRIANZA", "CODICE_COMUNE": 108040, "COMUNE": "SEVESO", "SOGGETTO_TITOLARE": "REGIONE LOMBARDIA", "PIVA_CODFISCALE_SOG_TITOLARE": "80050050154", "INDIRIZZO_SOG_TITOLARE": "CITTA' DI LOMBARDIA", "TIPO_INDIRIZZO_SOG_TITOLARE": "PIAZZA", "NUM_CIVICO_SOG_TITOLARE": "1", "LOCALITA_SOG_TITOLARE": "MILANO", "CAP_SOGGETTO_TITOLARE": "20124", "COMUNE_SOGGETTO_TITOLARE": "MILANO", "CODICE_COMUNE_SOGG_TITOLARE": 15146, "CODICE_SOTTOCATEG_SOGGETTO": 1, "SOTTOCATEGORIA_SOGGETTO": "AMMINISTRAZIONI REGIONALI", "CODICE_CATEGORIA_SOGGETTO": 3, "CATEGORIA_SOGGETTO": "ENTI TERRITORIALI E DI AMMINISTRAZIONE DEL TERRITORIO", "CODICE_AREA_SOGGETTO": "PAL", "AREA_SOGGETTO": "AMMINISTRAZIONI LOCALI", "CODICE_NATURA_INTERVENTO": 6, "NATURA_INTERVENTO": "CONCESSIONE DI CONTRIBUTI AD ALTRI SOGGETTI (DIVERSI DA UNITA' PRODUTTIVE)", "COD_NATURA_DIPE": "CS", "NATURA_DIPE": "Contributi (per calamità e altro)", "CODICE_TIPO_INTERVENTO": 1, "TIPOLOGIA_INTERVENTO": "ACQUISTO SERVIZI REALI (INCLUSA FORMAZIONE)", "CODICE_AREA_INTERVENTO": 5, "AREA_INTERVENTO": "RICERCA, ITC, FORMAZIONE E ALTRO", "CODICE_SETTORE_INTERVENTO": 11, "SETTORE_INTERVENTO": "ISTRUZIONE, FORMAZIONE E SOSTEGNI PER IL MERCATO DEL LAVORO", "CODICE_SOTTOSETTORE_INTERVENTO": 71, "SOTTOSETTORE_INTERVENTO": "FORMAZIONE PER IL LAVORO", "CODICE_CATEGORIA_INTERVENTO": 3, "CATEGORIA_INTERVENTO": "FORMAZIONE POST QUALIFICA E POST DIPLOMA", "SOGGETTO_RICHIEDENTE": "REGIONE LOMBARDIA", "TIPOLOGIA_CUP": "NORMALE", "DESCRIZIONE_INTERVENTO": "Richiesta contributo Dote Lavoro", "DENO_IMPRESA_STABILIMENTO": "**********", "PIVA_CF_BENEFICIARIO": "**********", "DENO_IMPRESA_STABILIMENTO_PREC": null, "DENOMINAZIONE_BENEFICIARIO": "**********", "STRUTTURA_INFRASTRUTTURA": "AGENZIA PER LA FORMAZIONE LORIENTAMENTO ED IL LAVORO DELLA PROVINCIA DI MONZA E DELLA BRIANZA", "INDIRIZZO_INTERVENTO": "**********", "NUMERO_DELIBERA_CIPE": "DATO NON PRESENTE", "ANNO_DELIBERA": "DATO NON PRESENTE", "FLAG_LEGGE_OBIETTIVO": "DATO NON PRESENTE", "FLAG_TIPO_GENERICO": "NO", "CUP_IN_RELAZIONE": null, "RUOLO_IN_RELAZIONE": null, "DESC_TIPO_RELAZIONE": null, "DATA_ULTIMA_MODIFICA_SSC": null, "DATA_ULTIMA_MODIFICA_UTENTE": null, "DATA_CHIUSURA_REVOCA": null, "CODICE_LOCALE_PROGETTO": "16525101", "CODICE_STRUMENTO_PROGRAM": 99, "STRUMENTO_PROGRAMMAZIONE": "ALTRO", "CODICE_COPERTURA_FINANZIARIA": 1, "COPERTURA_FINANZIARIA": "STATALE", "FINANZA_PROGETTO": "DATO NON PRESENTE", "SPONSORIZZAZIONI": "DATO NON PRESENTE", "ALTRE_INFORMAZIONI": "309 - Dote Lavoro Ammortizzatori Sociali id.12569485", "DATA_GENERAZIONE_CUP": "17-MAR-2011", "CONTROLLO_QUALITA": "Il corredo informativo del CUP non è stato visionato", "CUP_MASTER": null, "RAGIONI_COLLEGAMENTO": null, "LINK_OPENCOESIONE": "www.opencoesione.gov.it/progetti/1lolombgefo-00000000000016525101/", "LINK_SCUOLE_SICURE": null, "COD_SEZIONE_ATECO": "P", "SEZIONE_ATECO": "ISTRUZIONE", "COD_DIVISIONE_ATECO": 85, "DIVISIONE_ATECO": "ISTRUZIONE", "COD_GRUPPO_ATECO": "85.5", "GRUPPO_ATECO": "ALTRI SERVIZI DI ISTRUZIONE", "COD_CLASSE_ATECO": null, "CLASSE_ATECO": null, "COD_CATEGORIA_ATECO": null, "CATEGORIA_ATECO": null, "COD_SOTTOCATEG_ATECO": null, "SOTTOCATEGORIA_ATECO": null}

I'll add some additional checks for CSV parsing settings so it will automatically turn off optimization if a custom delimiter is specified.

@aborruso
Copy link
Contributor Author

aborruso commented Mar 6, 2024

Hi @aborruso , this is because the automatic read_csv() fast path optimization doesn't support custom delimiters.

Thank you very much.

I have a lot of CSV as this one and I would like to merge them. How to do it? Do I must use an .infile-list file?
If yes, I'm not able to use it.

@aborruso
Copy link
Contributor Author

aborruso commented Mar 7, 2024

@jqnatividad please, when you can, could you explain to me how to use .infile-list file?

Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants