问题
I read somewhere that Hadoop has a built-in support for compression and decompression but I guess it is about mapper output (by setting some properties)?
I wonder if there is any particular PIG load/store functions I can use for reading compressed data or outputting data as compressed?
回答1:
The PigStorage handles compressed input by examining the file names:
- *.bz2 / *.bz -
org.apache.pig.bzip2r.Bzip2TextInputFormat
- Everything else uses
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat
-- This extendso.a.h.mapreduce.TextinputFormat
which can handle .gz and zippy files if you have the codecs installed
Output is handled via some properties:
output.compression.enabled
- true / falseoutput.compression.codec
- the class name of the codec to use (org.apache.hadoop.io.compress.GzipCodec
for gzip)
If you're feeling up to it, digging through the PigStorage.java may be of interest to you
来源:https://stackoverflow.com/questions/9896584/is-compression-decompression-of-gzip-data-transparent-in-hadoop-pig