是否有可能在蜂巢外部表中压缩json?

时间:2016-06-06 09:47:20

标签: hadoop hive cloudera hiveql hadoop-streaming

我想知道如何在hive外部表中压缩json数据。怎么做到呢? 我创建了这样的外部表:

 CREATE EXTERNAL TABLE tweets (
id BIGINT,created_at STRING,source STRING,favorited BOOLEAN
)ROW FORMAT SERDE "com.cloudera.hive.serde.JSONSerDe" LOCATION "/user/cloudera/tweets";

我设置了压缩属性

set mapred.output.compress=true;
set hive.exec.compress.output=true;
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;

输入文件:test

{ "id": 596344698102419451, "created_at": "MonApr0101: 32: 06+00002013", "source": "blank", "favorited": false }

之后我将我的json文件加载到hdfs location "/user/cloudera/tweets".

但它没有被压缩。

请告诉我如何在hive外部表中进行压缩? 有人可以帮我压缩蜂巢外部表吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

只需将您的文件gzip并按原样(* .gz)放入表格位置

答案 1 :(得分:0)

你需要解压缩才能选择json。你不能同时使用serde(json和gzip)