【发布时间】:2013-08-29 03:24:55
【问题描述】:
我已经玩 Hive 几天了,但我仍然很难分区。
几个月来,我一直在 Hadoop 中记录 Apache 日志(组合格式)。它们以行文本格式存储,按日期分区(通过水槽): /logs/yyyy/mm/dd/hh/*
例子:
/logs/2012/02/10/00/Part01xx (02/10/2012 12:00 am)
/logs/2012/02/10/00/Part02xx
/logs/2012/02/10/13/Part0xxx (02/10/2012 01:00 pm)
combined log 文件中的日期遵循此格式 [10/Feb/2012:00:00:00 -0800]
如何在 Hive 中使用我的物理分区创建带有分区的外部表。我在 Hive 分区上找不到任何好的文档。我发现了相关的问题,例如:
如果我使用 Hive 将日志加载到外部表中,我无法按时间分区,因为它不是好的格式(2 月 02)。即使它的格式很好,我如何将字符串“10/02/2012:00:00:00 -0800”转换为多个目录“/2012/02/10/00”?
我最终可以使用 pig 脚本将原始日志转换为 hive 表,但此时我应该只使用 pig 而不是 hive 来进行报告。
【问题讨论】:
标签: hadoop mapreduce hive apache-pig