【发布时间】:2021-04-16 19:21:30
【问题描述】:
我正在尝试读取保存为 UTF-8 编码文件的 CSV 文件。当我尝试使用 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| +-------------------------------------------------- -------------------------------------------------- --+ | @�#"Y...| +-------------------------------------------------- -------------------------------------------------- --+
我真的不知道我做错了什么。提前感谢您的帮助!
【问题讨论】:
-
尝试将文件扩展名更改为
.gz? -
谢谢!这回答了我的问题。正如我在下面提到的,我在 csv 文件之前阅读了一些 json.gzip 文件并且没有问题。只有 show() 函数需要永远,这有点奇怪,因为 json 文件没有 csv 文件那么大。后者现在完美运行。我现在很好奇为什么 show() 函数需要这么长时间,即使它可能不属于本主题。
标签: python csv apache-spark pyspark apache-spark-sql