【问题标题】:Compressing sequence file in Spark?在 Spark 中压缩序列文件?
【发布时间】:2014-05-13 22:38:24
【问题描述】:

我正在尝试将 RDD 保存为压缩的序列文件。我可以保存调用的非压缩文件:

counts.saveAsSequenceFile(output)

counts 是我的 RDD(IntWritable,Text)。但是,我没有设法压缩输出。我尝试了几种配置,总是出现异常:

counts.saveAsSequenceFile(output, classOf[org.apache.hadoop.io.compress.SnappyCodec])
<console>:21: error: type mismatch;
 found   : Class[org.apache.hadoop.io.compress.SnappyCodec](classOf[org.apache.hadoop.io.compress.SnappyCodec])
 required: Option[Class[_ <: org.apache.hadoop.io.compress.CompressionCodec]]
              counts.saveAsSequenceFile(output, classOf[org.apache.hadoop.io.compress.SnappyCodec])

 counts.saveAsSequenceFile(output, classOf[org.apache.spark.io.SnappyCompressionCodec])
<console>:21: error: type mismatch;
 found   : Class[org.apache.spark.io.SnappyCompressionCodec](classOf[org.apache.spark.io.SnappyCompressionCodec])
 required: Option[Class[_ <: org.apache.hadoop.io.compress.CompressionCodec]]
              counts.saveAsSequenceFile(output, classOf[org.apache.spark.io.SnappyCompressionCodec])

它甚至对 Gzip 也不起作用:

 counts.saveAsSequenceFile(output, classOf[org.apache.hadoop.io.compress.GzipCodec])
<console>:21: error: type mismatch;
 found   : Class[org.apache.hadoop.io.compress.GzipCodec](classOf[org.apache.hadoop.io.compress.GzipCodec])
 required: Option[Class[_ <: org.apache.hadoop.io.compress.CompressionCodec]]
              counts.saveAsSequenceFile(output, classOf[org.apache.hadoop.io.compress.GzipCodec])

您能否提出解决方案?另外,我没有找到如何指定压缩参数(即 Snappy 的压缩类型)

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    saveAsSequenceFile 的签名是def saveAsSequenceFile(path: String, codec: Option[Class[_ &lt;: CompressionCodec]] = None)。您需要将Option[Class[_ &lt;: CompressionCodec]] 发送为codec。例如,

    counts.saveAsSequenceFile(output, Some(classOf[org.apache.hadoop.io.compress.SnappyCodec]))
    

    如果您仔细阅读了type mismatch的错误信息,应该已经自行更正了。

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多