gpt4 book ai didi

apache-spark - 在 Spark 中压缩序列文件?

转载 作者:行者123 更新时间:2023-12-04 03:59:18 24 4
gpt4 key购买 nike

我正在尝试将 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 的压缩类型)

最佳答案

saveAsSequenceFile的签名是def saveAsSequenceFile(path: String, codec: Option[Class[_ <: CompressionCodec]] = None) .您需要发送 Option[Class[_ <: CompressionCodec]]作为codec .例如,

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

如果你看了type mismatch的错误信息仔细点,你应该已经自己改正了。

关于apache-spark - 在 Spark 中压缩序列文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com