Странные символы при чтении сжатого файла CSV [дубликат]
Я пытаюсь прочитать файл 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 ... | + ------------------------------------- -------------------------------------------------- -------------- +
Я действительно не знаю, что делаю не так. Заранее спасибо за вашу помощь!
Ответы
Spark определяет формат сжатия файла, используя расширение файла. По умолчанию сжатые файлы имеют расширение .gz, поэтому, если вы переименуете свой файл, чтобы он имел расширение .gzвместо .gzip, Spark должен иметь возможность правильно распаковать CSV-файл.