读取压缩序列文件失败,错误为“java.io.IOException: not a gzip file”

问题描述

我正在读取一个 XML 文件并将其转换为压缩的 GzipCodec seq 文件

val xmlstrdf:Dataset[String] = spark.read.textFile("F:\\Spark_Xml_Poc\\CustomersOrdersInNamespace.xml")

xmlstrdf.rdd. map(x=>(NullWritable.get(),x)).saveAsSequenceFile("F:\\Spark_Xml_Poc\\seqxmlfile7",Some(classOf[GzipCodec]))

val seqFilesDs =spark.sparkContext.sequenceFile("F:\\Spark_Xml_Poc\\seqxmlfile7",classOf[NullWritable],classOf[Text])
seqFilesDs .count

它因“读取压缩的 seq 文件时出现异常”而失败:

1/01/07 16:09:39 INFO DAGScheduler:ResultStage 2(计数在 SparkXmlPoc.scala:107) 在 0.200 秒内失败,因为作业因以下原因中止 阶段失败:阶段 2.0 中的任务 0 失败 1 次,最近一次 失败:在阶段 2.0 中丢失任务 0.0(TID 2、本地主机、执行程序 驱动程序):java.io.IOException:不是 gzip 文件 在 org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor.processBasicHeader(BuiltInGzipDecompressor.java:496) 在 org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor.executeHeaderState(BuiltInGzipDecompressor.java:257) 在 org.apache.hadoop.io.compress.zlib.BuiltInGzipDecompressor.decompress(BuiltInGzipDecompressor.java:186) 在 org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:91) 在 org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:85) 在 org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:72) 在 java.io.DataInputStream.readByte(DataInputStream.java:265) 在 org.apache.hadoop.io.Writableutils.readVLong(Writableutils.java:308) 在 org.apache.hadoop.io.Writableutils.readVInt(Writableutils.java:329)

我能够读取非压缩的 seq 文件,但无法在 Spark 中读取压缩的 seq 文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)