Странные символы при чтении сжатого файла CSV [дубликат]

Jan 12 2021

Я пытаюсь прочитать файл CSV, который я сохранил как файл в кодировке UTF-8. Когда я пытаюсь прочитать файл с помощью Pandas, это занимает много времени, но я получаю желаемый результат.

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

Практически то же самое в Spark, чтобы прочитать точно такой же файл из 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()

С таким результатом:

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

Я действительно не знаю, что делаю не так. Заранее спасибо за вашу помощь!

Ответы

mck Jan 12 2021 at 03:18

Spark определяет формат сжатия файла, используя расширение файла. По умолчанию сжатые файлы имеют расширение .gz, поэтому, если вы переименуете свой файл, чтобы он имел расширение .gzвместо .gzip, Spark должен иметь возможность правильно распаковать CSV-файл.