【发布时间】:2017-04-28 02:34:49
【问题描述】:
在处理数据压缩时,Spark 支持底层 Hadoop 基础架构中的各种压缩方案。例如 Snappy(默认)、LZ4、LZF、GZIP。
如何指定使用与现有编解码器不同的用户构建的自定义编解码器顺序。例如,我的编解码器称为 DUMB。如何使用 DUMB 而不是默认的 Snappy。我查看了 CompressionCodecFactory 类 (https://hadoop.apache.org/docs/r1.2.1/api/org/apache/hadoop/io/compress/CompressionCodecFactory.html),但仍然不太了解如何连接起来。以前有没有人做过类似的事情,或者有任何提示?
编辑:根据@Paweł_Jurczenko 的回答,我添加了更多细节。
这里是哑巴:
public class Dumb{
public Dumb() {
}
public int CompressIt(InBuffers inBuffs) {
return CallCompressor(inBuffs);
}
}
*InBuffers 是一个实现要压缩的缓冲区列表的类,而 CallCompressor 完成肮脏的地下工作。
要在主类中使用 DUMB,我会这样做:
Dumb myDumbComp = new Dumb();
myDumbComp.CompressIt(inBuffs) //inBuffs is a List of individual input buffers
但是现在,我想要一个标准的 CompressionCodec 接口,通过它我可以调用 Hadoop 中的方法。
【问题讨论】:
标签: java scala hadoop apache-spark