首页 > 解决方案 > 读取压缩的 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...| +------------------------- -------------------------------------------------- --------------+

我真的不知道我做错了什么。在此先感谢您的帮助!

标签: pythoncsvapache-sparkpysparkapache-spark-sql

解决方案


Spark 使用文件扩展名推断文件压缩格式。默认情况下,gzip 压缩文件具有扩展名.gz,因此如果您将文件重命名为具有扩展名.gz而不是.gzip,Spark 应该能够正确解压缩 csv 文件。


推荐阅读