Dziwne znaki podczas czytania spakowanego gzipem pliku CSV [duplikat]

Jan 12 2021

Próbuję odczytać plik CSV, który zapisałem jako plik zakodowany w UTF-8. Kiedy próbuję odczytać plik za pomocą Pandas, zajmuje to dużo czasu, ale otrzymuję pożądany wynik.

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

Robiąc prawie to samo w Spark, aby odczytać dokładnie ten sam plik z 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()

Z tym wynikiem:

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

Naprawdę nie wiem, co robię źle. Z góry dziękuje za twoją pomoc!

Odpowiedzi

mck Jan 12 2021 at 03:18

Spark wnioskuje o formacie kompresji plików przy użyciu rozszerzenia pliku. Domyślnie pliki spakowane gzip mają rozszerzenie .gz, więc jeśli zmienisz nazwę pliku na rozszerzenie .gzzamiast .gzip, Spark powinien być w stanie poprawnie zdekompresować plik csv.