Các ký tự lạ trong khi đọc tệp CSV được nén gzipped [bản sao]
Tôi đang cố đọc tệp CSV mà tôi đã lưu dưới dạng tệp được mã hóa UTF-8. Khi tôi cố gắng đọc tệp bằng Pandas, mất rất nhiều thời gian nhưng tôi nhận được kết quả mong muốn.
out_pd = pd.read_csv('../files/example_file_out.csv.gzip', sep='\t', encoding='utf-8', compression='gzip')
Làm gần như tương tự trong Spark để đọc chính xác cùng một tệp từ 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()
Với kết quả này:
+ ------------------------------------------------- -------------------------------------------------- - + | _ 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 ... | + ------------------------------------- -------------------------------------------------- -------------- +
Tôi thực sự không biết mình đang làm gì sai. Cảm ơn trước sự giúp đỡ của bạn!
Trả lời
Spark suy ra định dạng nén tệp bằng phần mở rộng tệp. Theo mặc định, các tệp gzipped có phần mở rộng .gz
, vì vậy nếu bạn đổi tên tệp của mình để có phần mở rộng .gz
thay vì .gzip
, Spark sẽ có thể giải nén tệp csv đúng cách.