Caratteri strani durante la lettura del file CSV compresso con gzip [duplicato]

Jan 12 2021

Sto cercando di leggere un file CSV, che ho salvato come file codificato UTF-8. Quando provo a leggere il file con Pandas, ci vuole molto tempo ma ottengo l'output desiderato.

out_pd = pd.read_csv('../files/example_file_out.csv.gzip', sep='\t', encoding='utf-8', compression='gzip')

Fare quasi lo stesso in Spark per leggere esattamente lo stesso file da HDFS:

out_spark = spark.read.format('csv').options(header = "true", sep = "\t", encoding = "UTF-8").load("/Path/to/Folder/example_file_out.csv.gzip" )
out_spark.show()

Con questo risultato:

+ ------------------------------------------------- -------------------------------------------------- - + | _ example_file_out.csv.gzip Ѳ Fr$�|�l�A?��̈��L��F��cWZ�F��Ef�^�5C�k�hW���H$ j xH? } N | + ------------------------------------------------- -------------------------------------------------- - + | @ # "<= <^ ... | |? ϟ Ͽ O ... | | ރ Y ^ x o e> Y ... | + ------------------------------------- -------------------------------------------------- -------------- +

Non so davvero cosa sto sbagliando. Grazie in anticipo per il vostro aiuto!

Risposte

mck Jan 12 2021 at 03:18

Spark deduce il formato di compressione del file utilizzando l'estensione del file. Per impostazione predefinita, i file compressi con gzip hanno l'estensione .gz, quindi se rinomini il tuo file per avere un'estensione .gzinvece di .gzip, Spark dovrebbe essere in grado di decomprimere correttamente il file csv.