将数据加载到impala分区表中

时间:2014-08-21 20:10:17

标签: database hadoop database-schema cloudera impala

我在HDFS中有以下dir结构的数据:

/exported/2014/07/01/00/SEARCHES/part-m-00000.bz2
                                 part-m-00001.bz2
/exported/2014/07/01/02/SEARCHES/part-m-00000.bz2
                                 part-m-00001.bz2
                                 part-m-00003.bz2
.
.
.
.
/exported/2014/08/01/09/SEARCHES/part-m-00005 .bz2

每个子目录中都有多个部分文件。

我想将此数据集加载到impala表中,因此请使用以下查询来创建表:

CREATE EXTERNAL TABLE搜索(time_stamp TIMESTAMP,..... url STRING,domain STRING)PARTITIONED BY(年INT,月INT,日INT。小时INT)行格式分隔的字段以'\ t'结尾;

然后

ALTER TABLE search ADD PARTITION (year=2014, month=08, day=01) LOCATION '/data/jobs/exported/2014/08/01/*/SEARCHES/';

但是无法加载以下错误:

ERROR: AnalysisException: Failed to load metadata for table: magneticbi.search_mmx
CAUSED BY: TableLoadingException: Failed to load metadata for table: search_mmx
CAUSED BY: RuntimeException: Compressed text files are not supported: part-m-00000.bz2

不确定这样做的正确方法是什么。

任何人都可以提供帮助吗?

由于

1 个答案:

答案 0 :(得分:2)

这是一个描述您的选项的link to a table from Cloudera。总结一下:

Impala支持以下压缩编解码器:

  • 活泼的。推荐用于压缩比和减压速度之间的有效平衡。 Snappy压缩速度非常快,但GZIP可以节省更多空间。文本文件不支持。
  • GZIP。建议在实现最高级别的压缩(因此节省最大的磁盘空间)时。文本文件不支持。 放气。文本文件不支持。
  • BZIP2。文本文件不支持。
  • LZO,仅适用于文本文件。 Impala可以查询LZO压缩的Text表,但目前无法创建它们或将数据插入到它们中;在Hive中执行这些操作。