読み取り/書き込みパフォーマンスのためにファイルを圧縮する別の方法を使用しようとしています。私が調査した方法の 1 つは、Snappy 圧縮を使用することです。
これまでのところ、非常にうまく機能しており、HDFS に取り込んで、-text コマンドを使用して解凍し、値を確認することができました。実際の問題は、データをハイブにインポートしようとしたときに発生します。
データをハイブにインポートするときは、Snappy 圧縮ファイルを読み取るようにパラメーターを設定するとともに、単純な外部テーブルを作成します...
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;
CREATE EXTERNAL TABLE IF NOT EXISTS test(...
..
)
LOCATION '/user/.../'
テストから SELECT COUNT(*) を実行すると; 正しい行の値を取得します。ただし、SELECT * FROM test limit 100; を実行すると、私が見るのはNULL値だけです。なぜこうなった?何かご意見は?