PySpark与AWS Glue读取tar-zcvf压缩的JSON.gz文件失败,求助原因
问题原因解析
- 你用错了压缩工具:
tar -zcvf是归档+压缩的组合命令,它会先把你的JSON文件打包成tar归档包,再用gzip压缩。最终生成的one-file.json.gz本质是tar.gz格式,不是单纯的gzip压缩的JSON文件。 - PySpark和AWS Glue读取gzip压缩的JSON文件时,期望的是直接用gzip压缩的原始JSON内容,而不是包含JSON文件的tar归档结构。当它们读取这个tar.gz格式的文件时,解析的是归档的二进制元数据(比如文件名、文件权限等),而非JSON文本,自然无法识别,导致PySpark生成
_corrupt_record列,Glue直接抛出解析异常。
正确的压缩方式
要得到能被PySpark/Glue正常识别的压缩JSON文件,直接用gzip命令压缩单个JSON文件即可:
gzip one-file.json
生成的one-file.json.gz就是单纯的gzip压缩JSON,PySpark和Glue可以直接读取。
内容的提问来源于stack exchange,提问作者Yiffany
相关产品推荐
相关产品推荐

