Caractères étranges lors de la lecture d'un fichier CSV compressé au format gzip [en double]

Jan 12 2021

J'essaie de lire un fichier CSV, que j'ai enregistré en tant que fichier encodé UTF-8. Lorsque j'essaye de lire le fichier avec Pandas, cela prend beaucoup de temps mais j'obtiens le résultat souhaité.

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

Faire presque la même chose dans Spark pour lire exactement le même fichier à partir de 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()

Avec ce résultat:

+ ------------------------------------------------- -------------------------------------------------- - + | _ 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 ... | + ------------------------------------- -------------------------------------------------- -------------- +

Je ne sais vraiment pas ce que je fais de mal. Merci d'avance pour votre aide!

Réponses

mck Jan 12 2021 at 03:18

Spark déduit le format de compression de fichier à l'aide de l'extension de fichier. Par défaut, les fichiers gzippés ont l'extension .gz, donc si vous renommez votre fichier pour avoir une extension de .gzau lieu de .gzip, Spark devrait être en mesure de décompresser le fichier csv correctement.