0

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

/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 search(time_stamp TIMESTAMP, ..... url STRING,domain STRING) PARTITIONED BY (year INT, month INT, day INT.hour 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

不确定执行此操作的正确方法是什么。

任何人都可以在这方面提供帮助吗?

谢谢

4

1 回答 1

2

这是Cloudera中描述您的选项的表格的链接。总结一下:

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

  • 活泼。推荐它在压缩比和解压缩速度之间的有效平衡。Snappy 压缩非常快,但 GZIP 可以节省更多空间。不支持文本文件。
  • 压缩包。当需要实现最高级别的压缩(并因此最大程度地节省磁盘空间)时推荐使用。不支持文本文件。放气。不支持文本文件。
  • 压缩包2。不支持文本文件。
  • LZO,仅适用于文本文件。Impala 可以查询 LZO 压缩的 Text 表,但目前无法创建它们或向其中插入数据;在 Hive 中执行这些操作。
于 2014-08-22T01:25:20.110 回答