将数据加载到 impala 分区表中
Posted
技术标签:
【中文标题】将数据加载到 impala 分区表中【英文标题】:load data into impala partitioned table 【发布时间】:2014-08-21 20:10:17 【问题描述】:我在 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
不确定执行此操作的正确方法是什么。
有人可以帮忙吗?
谢谢
【问题讨论】:
【参考方案1】:这里有一个link to a table from Cloudera,描述了您的选择。总结一下:
Impala 支持以下压缩编解码器:
活泼。推荐它在压缩比和解压缩速度之间的有效平衡。 Snappy 压缩非常快,但 GZIP 可以节省更多空间。不支持文本文件。 GZIP。当需要实现***别的压缩(并因此最大程度地节省磁盘空间)时推荐使用。不支持文本文件。 放气。不支持文本文件。 BZIP2。不支持文本文件。 LZO,仅适用于文本文件。 Impala 可以查询 LZO 压缩的 Text 表,但目前无法创建它们或向其中插入数据;在 Hive 中执行这些操作。【讨论】:
以上是关于将数据加载到 impala 分区表中的主要内容,如果未能解决你的问题,请参考以下文章